iOS生成.a包

我的例子是打包MJRefresh

环境OS10.11.4,  XCode version 7.3.1 (7D1014)

生成.a如下:

创建新工程:  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114303_rciS.jpg "在这里输入图片标题")  
把下载的 MJRefresh-master加到你的工程中,如下:  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114346_wBAw.png "在这里输入图片标题")    
工程显示如下  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114424_fl9W.jpg "在这里输入图片标题")  
然后进行如下图操作  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114458_M25o.jpg "在这里输入图片标题")  
你要把compile source这里的.m文件删除多余的,仅保留暴露的.h对应的.m,(不然的话,会报文件重复错误)如下图:  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114613_btOo.jpg "在这里输入图片标题")  
先生成模拟器的.a包,选中模拟器,然后编译(command + B)
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114648_BOhN.jpg "在这里输入图片标题")  
成功后Products下面的.a文件会变成黑色,选中这个 .a 然后右键Show in Finder,就可以看到模拟器的.a了,如下图  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114723_jcUC.jpg "在这里输入图片标题")  
真机的.a包也是一样生成,重复第五步骤就可以。  

这样我们就得到了模拟器和真机的.a包。  
新建工程RefreshDemo,把.a包拖拽到新建工程,删除要暴露的.m文件,如下图:  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114811_5FO0.jpg "在这里输入图片标题")  
这个时候关键一步,设置RefreshDemo工程:other Linker Falg 设置为:-all_load,因为我要暴露的是个category,不设置的话,就会崩溃,报错为找不到某方法,假如你的.a没有category就不需要设置了。设置图如下:  
![输入图片说明](https://static.oschina.net/uploads/img/201705/26114845_pBKg.jpg "在这里输入图片标题")  
真机和模拟器都可以使用.a文件可以合并成为一个.a文件 使用终端合成具体方法如下:  

终端代码如下 :  
lipo -create /iOS/Debug-iPhoneos/librefreshDemoStaticLibrary.a /iOS/Debug-iphonesimulator/librefreshDemoStaticLibrary.a  -output SQY/iOS/libGamePus.a其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库。    
 /iOS/iphonesimulator/librefreshStaticLibrary.a //为模拟器库   
 -output /iOS/librefreshStaticLibrary.a //为两个合并后存放的路径
赞 (0) 评论 分享 ()