iOS 静态库——制作.a

.a 静态库的制作    演示制作AFNetworking 的静态库(静态库里面 不包含其它和 AF 无关的文件)

1、新建项目-> 选择 “Cocoa Touch Static Library” 

2、网上下载的AFNetworking 添加进去,CustomSDK.h   CustomSDK.m   Student.h   Student.m  用来代表 其它不需要打包进来的文件。 

3、选择打包到.a  和暴露出来的文件。

3、Edit Scheme 改为release 快捷键 command + shift + <    

  

 4、 选择真机设备,command + b 编译一下,然后Products 里面的.a 文件(真机状态编译后,由红变黑),  show in finder 可以看到编译产生的包。

  (模拟器和真机的.a是分开的,要分开制作。注意建议先选择真机,这样才会变色。

   如果先选择模拟器,那么编译通过了,但是不会由红变黑,实际上是已经编译了模拟器的,只是给人一种假象,好像没编译一样,还是红色的。

   我这里就是先编译模拟器,后编译了真机,结果没有红色变黑色)。

  注: 编译前检查一下是debug模式还是release模式,选择release模式:

  • 分debug和release模式:
  • Debug-iphoneos 文件夹里面的东西是用在真机上的
  • Debug-iphonesimulator 文件夹里面的东西是用在模拟器上的
  • 如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头

5、选择模拟器,重新 command + b 编译,

    Products 里面的.a 文件 show in finder 可以看到编译产生的真机包,加上之前的真机包,此时有两个包了

6、合并模拟器(release-iphonesimulator)和真机(release-iphoneos)下的.a,以便支持真机和模拟器,合并后的.a大小大约是不合并的2倍左右。

合并的命令

lipo  -create /Users/mac/Desktop/dabao/Release-iphoneos/libCustomSDK.a  /Users/mac/Desktop/dabao/Release-iphonesimulator/libCustomSDK.a -output /Users/mac/Desktop/dabao/hebingCustomSDK.a

 

路径太长,下面有个简单的方式:(每一步记得要用空格隔开,不要遗漏了)

a1、新建文件夹:"dabao";

a2、将上述的release-iphonesimulator和release-iphoneos两个文件拷贝进"dabao"文件夹

a3、在终端输入:lipo  -create

a4、将release-iphonesimulator下的.a拖进终端,输入一个空格;

a5、继续将release-iphoneos 下.a 拖进终端,输入空格

a6、继续输入:-output ,打个空格

a7、输入合并后的.a所要放的文件路径,这里举例依然放在“dabao”这个文件夹下,则我的电脑的路径为:

/Users/mac/Desktop/dabao/hebingCustomSDK.a, 回车,在相应的文件下即可生成一个.a,该.a即是合并后的.a.

 

这样  .a 就成功制作出了,

7、整理。

a1. 新建个文件夹,可以任意取名字。

a2.  把暴漏的头文件、制作的.a 文件夹。

到此这个包就可以被其他工程接入使用了,再也不用担心源码暴漏或别人随意修改你的代码了。

注:如果有图片资源,图片资源是不能打进.a的,需要在外面添加的。

 github 地址:  https://github.com/lc081200/makeStaticLibrary


相关阅读】:

1、iOS 静态库——理论

2、iOS 静态库——.a制作

3、iOS 静态库——Framework制作

原文地址:https://www.cnblogs.com/saytome/p/7232489.html