创建一个iOS Framework(静态或动态库)
步骤:
创建 iOS Framework 项目
- 启动 Xcode:打开Xcode,选择
File>New>Project...。 - 新建框架项目:在模板列表中选择
Cocoa Touch Framework模板,然后点击Next。 - 配置项目:
- 设置产品名称(例如:
MyAwesomeSDK)。 - 选择目标设备(默认一般选择
iOS,如果你需要支持模拟器和真机,则确保勾选Universal或在后期合并架构)。 - 选择合适的编程语言(Objective-C或Swift)。
- 设置产品名称(例如:
编写代码
- 添加功能类与方法:在框架项目中编写实现特定功能的类和方法,并公开必要的头文件以供外部应用访问。
构建设置
- 通用架构支持:
- 如果是动态库,确保在
Build Settings中配置为Dynamic Library(Mach-O Type),并且针对不同架构进行构建。对于同时支持模拟器和真机,需要生成两个版本的framework并将其合并成一个universal framework。 - 对于静态库,同样需要配置为
Static Library,并确保Build Active Architecture Only设为NO以便构建所有架构。
- 如果是动态库,确保在
公开接口
- 公开API:将你希望对外暴露的类、协议和函数声明放在公开头文件(
.h对于Objective-C,.swift对于Swift且需使用@public关键字)中。
打包与分发
-
构建Framework:
- 使用Xcode的Archive功能创建Release版的framework。
- 如果是动态framework,你需要分别编译适用于模拟器和真机的版本,然后使用lipo工具合并为一个通用的framework。
-
验证兼容性:确保framework可以在多个iOS版本上正常工作,并提供相应的最低支持版本信息。
-
文档与示例:
- 编写详细的API文档,可以采用Javadoc或AppleDoc等工具自动生成。
- 提供示例项目,展示如何正确地集成和使用你的framework。
-
发布与分发:
- 将打包好的framework以及相关文档上传至Git仓库、私有服务器或者通过包管理器如CocoaPods、Carthage或Swift Package Manager等方式分发给其他开发者。
示例命令(如果手动合并动态库)
# 假设你已经分别构建了模拟器和真机版本的framework
# 模拟器版本位于 /path/to/MyAwesomeSDK.framework-iphonesimulator
# 真机版本位于 /path/to/MyAwesomeSDK.framework-iphoneos
# 合并为一个通用的framework
lipo -create \
/path/to/MyAwesomeSDK.framework-iphonesimulator/MyAwesomeSDK \
/path/to/MyAwesomeSDK.framework-iphoneos/MyAwesomeSDK \
-output /path/to/MyAwesomeSDK-universal/
# 复制并替换原有framework的内容
cp -r /path/to/MyAwesomeSDK.framework-iphoneos/* /path/to/MyAwesomeSDK.framework/
rm -rf /path/to/MyAwesomeSDK.framework/MyAwesomeSDK
mv /path/to/MyAwesomeSDK-universal /path/to/MyAwesomeSDK.framework/MyAwesomeSDK