.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
【相关阅读】: