【发布时间】:2016-07-19 06:59:45
【问题描述】:
我是 XCode 的新手,我正在使用 Swift2 制作 iOS 框架,包括 3rd 方库 (*.a) 和框架。
我想将它作为 API 提供给其他人,但我也想从我的框架分发文件中隐藏第 3 方库和框架文件,因为它们是私有的。
因此我只想打开我定义的API接口和类。
有可能吗?如何配置我的构建选项?
【问题讨论】:
标签: ios swift xcode ios-frameworks
我是 XCode 的新手,我正在使用 Swift2 制作 iOS 框架,包括 3rd 方库 (*.a) 和框架。
我想将它作为 API 提供给其他人,但我也想从我的框架分发文件中隐藏第 3 方库和框架文件,因为它们是私有的。
因此我只想打开我定义的API接口和类。
有可能吗?如何配置我的构建选项?
【问题讨论】:
标签: ios swift xcode ios-frameworks
您可以这样做,但您需要考虑一些事项:
您不能将一个框架嵌入到另一个框架中。这意味着如果您没有特定框架的源代码,则必须将其与您自己的框架一起发布。如果您有源代码,您可以考虑将它们直接编译到您的框架中。
*.framework 文件进行一些后期处理,以隐藏您想要保密的任何 API。
如果您在框架中使用 Swift 代码,请注意,由于缺少 ABI,您的框架只能由具有相同 Swift 编译器版本的人使用。这意味着由一个编译器版本生成的二进制文件很可能与新版本的编译器不兼容。
可以链接静态链接库,因此可以直接“合并”到您的框架二进制文件中。您只需要确保您拥有与您想要定位的架构兼容的二进制文件,例如,您不能使用为模拟器构建的静态链接库并将其链接到您想要为实际 iOS 设备构建的框架.
如果您在框架中使用 Swift,则框架的用户需要在其应用程序包中包含 Swift dylib 库 - 通过在应用程序中使用 Swift 或启用 Embedded Content Contains Swift Code 构建设置。
【讨论】: