1、新增项目,选择StaticLibrary

2、修改SDK适配的平台和最低支持的版本
target -> Build Setting -> Deployment,按照自己需要选择版本和平台即可

3、编写SDK代码
这里照Application工程来新建.h和.m文件等来实现自己想要的功能。
4、设置SDK需要保留给外部的头文件
先在target -> Build Phases添加Headers

有2种方式
a、选中.h文件,在右侧的Target Membership选择pulic则为暴露的头文件

b、target -> Build Phases->Headers把需要暴露的头文件从project长按拖动到Public下面即可

5、导出.a文件
a、导出真机架构的.a文件
编译设备选择真机/或者无设备,xcode左上角菜单栏Product->build for 导出对应模式下的.a文件。
也可以选择快捷键。

b、导出模拟器架构的.a文件
编译器选择任一模拟器然后重复上面build for步骤即可
6、合并成一个真机和模拟器都可以用的.a文件
如果不需要支持真机可以跳过合并直接提供真机架构的framework文件给外部使用即可。
工程左边文件目录选择Products文件夹下framework文件,右键选择show in floder找到iPhoneos文件夹下的真机架构文件和iphonesimulator文件夹下的模拟器架构文件
6.1、打开终端执行
lipo -create -output outputpath/name.a xxxx/Debug-iphoneos/xx.a xxxx/Debug-iphonesimulator/xx.a
outputpath --最终.a文件存放的路径
xxxx/Debug-iphoneos/xx.a:debug模式下生成的真机架构.a文件路径
xxxx/Debug-iphonesimulator/xx.a:debug模式下生成模拟器架构.a文件路径
也可以lipo -create xxxx/Debug-iphoneos/xx.a xxxx/Debug-iphonesimulator/xx.a -output outputpath/xx.a
此处合成的.a文件为debug模式下的文件,一般提供到外部使用都是release模式下的文件,把需要合并的2个文件路径换成release模式下生成的.a文件即可。
lipo -create xxxx/Release-iphoneos/xx.a xxxx/Release-iphonesimulator/xx.a -output outputpath/name.a
6.2、将合并后的或者release模式下的.a文件提供给外部工程使用即可。
至此大功告成。
网友评论