Tag: 自定义Swift框架

构建Swift框架的挑战(C ++,Objective C和Swift)

本演讲重点讨论构建Swift框架的挑战。 我将介绍我们如何克服这些挑战,从中获得的经验以及汲取的教训。 我希望它能帮助您了解如何在移动设备上构建开源或第三方软件,以及如何正确实现。 主要的挑战是如何将C ++与Swift交互。当我们想在库或源文件中的其他内容之上构建某些内容时。 对我们来说就是这种情况。 您想用自己来构建一个包装器。 我们的第一个想法是只有一个包含另一个框架的大框架。 然后,如果您开始构建新的Swift应用程序,我们将隐藏您不想处理的底层Objective-C部分。 事实证明,这种方法存在一些困难。 首先,您将不得不以用户身份修改构建设置。 即使这样,历史上在OSX上也有很长一段时间可用, 但是App Store完全不允许使用带有代码签名的概念 ,因此它对我们不可用,因为我们希望允许我们的用户构建真实的适用于App Store的应用程序。 让我们谈论一些新的东西,您听说过模块化框架吗? 还是自定义模块图? 如果否,则让我们深入研究一分钟以获得基本思想。 模块化框架是包含模块映射的框架。 该模块图既可以通过构建框架生成,也可以在框架项目中指定为构建设置,但不常见。 为了使Xcode生成模块映射文件,框架必须具有与框架名称相同的伞形标头,并且必须将“ Define Module ( DEFINES_MODULE )构建设置设置为yes。 在构建此框架时,Xcode将生成一个包含Modules Director的框架包。 此Modules目录包含具有以下内容的生成的模块映射( module.modulemap ): 框架模块 MixModuleFramework { 伞头 MixModuleFramework .h“出口* 模块 * { 导出 *} } 在解密默认模块映射文件之前,让我们袖手旁观并编写我们自己的映射文件。 框架可以通过将Module Map File ( MODULEMAP_FILE )Xcode构建设置设置为映射文件路径来指定自定义映射文件。 让我们从创建最简单的模块映射开始。 框架模块 MixModuleFramework { […]