我可以制作iOS all-in-one框架吗?或者在我的框架中包含私有静态库?

时间:2016-07-19 06:59:46

标签: ios swift xcode ios-frameworks

我是XCode的新手,我正在使用Swift2创建一个iOS框架,包括第三方库(* .a)和框架。

我想将其作为API提供给其他人,但我也希望隐藏我的框架分发文件中的第三方库和框架文件,因为它们是私有的。

因此我只想打开我定义的API接口和类。

有可能吗?如何配置我的构建选项?

1 个答案:

答案 0 :(得分:0)

你可以这样做,但有些事情你需要考虑:

  1. 您无法将一个框架嵌入到另一个框架中。这意味着如果您没有特定框架的源代码,则必须将它与您自己的框架一起发布。如果您有源,可以考虑直接将它们编译到您的框架中。

  2. 根据您在框架中使用的来源,您可能需要对obfuscate private headers等框架进行一些后期处理。例如,如果您使用Objective-C或C代码与Swift一起使用肯定需要对您的*.framework文件进行一些后期处理,以隐藏您想要保密的API。

  3. 如果您在框架中使用Swift代码,请注意,由于缺少ABI,您的框架只能由具有相同Swift编译器版本的人使用。这意味着由一个编译器版本生成的二进制文件很可能与较新版本的编译器不兼容。

  4. 静态链接库可以链接,因此可以直接“合并”到框架二进制文件中。您只需要确保为要定位的体系结构提供兼容的二进制文件,例如,您不能使用为模拟器构建的静态链接库,并将其链接到您要为实际iOS设备构建的框架上

  5. 如果您在框架中使用Swift,则框架的用户需要在其应用包中包含Swift dylib库 - 通过在应用中使用Swift或启用{{1}建立设置。