创建一个iOS Framework(静态或动态库)

1,169 阅读2分钟

创建一个iOS Framework(静态或动态库)

步骤:

创建 iOS Framework 项目

  1. 启动 Xcode:打开Xcode,选择File > New > Project...
  2. 新建框架项目:在模板列表中选择Cocoa Touch Framework模板,然后点击Next
  3. 配置项目
    • 设置产品名称(例如:MyAwesomeSDK)。
    • 选择目标设备(默认一般选择iOS,如果你需要支持模拟器和真机,则确保勾选Universal或在后期合并架构)。
    • 选择合适的编程语言(Objective-C或Swift)。

编写代码

  1. 添加功能类与方法:在框架项目中编写实现特定功能的类和方法,并公开必要的头文件以供外部应用访问。

构建设置

  1. 通用架构支持
    • 如果是动态库,确保在Build Settings中配置为Dynamic Library(Mach-O Type),并且针对不同架构进行构建。对于同时支持模拟器和真机,需要生成两个版本的framework并将其合并成一个universal framework。
    • 对于静态库,同样需要配置为Static Library,并确保Build Active Architecture Only设为NO以便构建所有架构。

公开接口

  1. 公开API:将你希望对外暴露的类、协议和函数声明放在公开头文件(.h对于Objective-C,.swift对于Swift且需使用@public关键字)中。

打包与分发

  1. 构建Framework

    • 使用Xcode的Archive功能创建Release版的framework。
    • 如果是动态framework,你需要分别编译适用于模拟器和真机的版本,然后使用lipo工具合并为一个通用的framework。
  2. 验证兼容性:确保framework可以在多个iOS版本上正常工作,并提供相应的最低支持版本信息。

  3. 文档与示例

    • 编写详细的API文档,可以采用Javadoc或AppleDoc等工具自动生成。
    • 提供示例项目,展示如何正确地集成和使用你的framework。
  4. 发布与分发

    • 将打包好的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