和上两篇文档一样,这篇文档也是去年在前公司写的,现在贴出来,希望对有需求的同学有所帮助。PS*此文档截图均来自Xcode7.3.1
一.a工程新建
打开XCode新建工程选择Framework&Library -> Cocoa Touch Static Library点击next输入工程名,机构名,选择语言点击next生成新的工程。
二.a工程配置
1.设置支持的iOS最低版本
2.配置支持的的真机架构
为了使编译的.a文件适配所有机型,首选将设置用只支持当前架构的选项(Buil Active Architectrue Only)的值设为No。
项目真机编译时默认支持arm64(iphone5s及以上手机使用),armv7(iphone4s及以下手机使用)架构,所以为了适配所有机型需要加上iphone5和iphone5c的armv7s架构,故如上图所示:点击Architecture选择other点击“+”添加arm64,armv7,armv7s。
3.配置编译文件以及关联库
4.项目代码
代码的书写以及导入库的方式和APP工程一样。
三.a静态库生成
1.由于供人使用的静态库都处在release模式下所以在生成.a文件时要将工程至于release模式下;
如上图点击工程选择Edit Scheme如下图
将Build Configuration的值设置为release。
2.先设置编译支持设备为Generic iOS Device,再按command+b生成适配真机的.a文件
3.设置编译支持设备为某一款模拟器,再按command+b生成适配模拟器的.a文件;
4.上诉两步之后可在便生成了release模式下真机和模拟器的两套.a文件,下一步就是讲两个.a文件融合生成一个适配模拟器和真机的静态库,具体如下:
a.打开命令行工具cd到Products(存储两个.a文件的文件夹)文件路径下
b.在工具中输入:lipo –create模拟器.a路径真机.a路径–output新的静态库.a然后回车即可生成新的静态库,如下图
然后将此.a文件和头文件文件夹(例如上图中的socialSDK)项目中并添加相关依赖库即可使用。
->>>>以下是在APP项目中使用.a需要做的
c.依赖库添加,这里以静态库中封装了,QQ,wechat,sina,99click,AFNetworking,以及RSA,MD5相关库和代码为例。
1>首先添加如下系统依赖库;
2>添加QQ,wechat,sina等的第三方SDK添加到项目中;
3>将工程Build Setting下Linking中Other Linker Flags的值设成–all_loady以及-fobjc-arc;将Build Option下的EnableBitcode设置成No。
通过以上设置后项目即可正常编译。
ps*swift由于还不稳定故不要有使用他做SDK的想法,老老实实用OC。