使用Xcode 7(Beta 3)构建Swift框架以用作嵌入式二进制文件

自从嵌入式二进制文件在iOS 8中引入以来,我一直想将大量通用代码移植到框架中。 我决定等待一年,然后今年,Xcode 7 Beta和iOS 9,我开始这么做。

我已经在Xcode 7中启动了一个Cocoa Touch框架项目,并且我想将它编译成一个可用的框架。 我可以把它编译成一个.framework,但是有一些问题。 即该框架似乎不适用于新项目(我将描述我很快就会采取的步骤)。 因此,我不确定我的框架是否有任何可见的符号。

这就是我为创建框架所做的事情:

  • 创建我的框架作为可可触摸框架。
  • 去了我的目标的Build阶段,去了Headers,并且把我所有的Swift文件添加到了“公共”部分,希望能够导出我所有的符号而不必将它们标记为public
  • 我试图将我的项目归档为一个框架。 目前,它看起来像Xcode 7 Beta 3有一个错误(今天晚些时候会报告它),它会生成损坏的归档文件。 出于这个原因,我无法从Organizer窗口获取我的框架。 为了解决这个问题,我将Xcode中的Run操作模式从Debug改为Release,并将其构建并从项目的build/iphoneos-release目录中抓取它生成的.framework 。 这是一个快速测试,所以我不需要为仿真器生成的框架。
  • 这就是我尝试将框架添加到新项目的过程:

  • 创建了一个“框架”组(出于组织目的)并将框架拖到那里,当它询问我是否要将该文件复制到我的项目目录时选择“是”。
  • 去我的目标的设置,从“链接库”(它自动添加到那里)我的框架,将其添加到嵌入二进制代替。 这又把框架添加到链接库,所以我不得不从那里删除它两次。 将框架留在链接库中会导致链接器错误(无法找到框架 - 不知道为什么,但我认为这与我的问题无关,并且我应该向Apple报告),但是一旦将其从中移除,似乎在将其添加到嵌入式二进制文件时编译良好。
  • 试图导入我的框架在一个文件中。 Xcode抱怨说“没有这样的模块”。
  • 不幸的是,尽管嵌入式框架已经存在了大约一年的时间,但我在这个主题上找不到太多的文字。

    所以我的问题是:我是否正确地创建了框架,使得我的框架/其他任何内容由于Xcode 7 Beta错误而失败? 或者是否有不同的过程来创建我想用作嵌入式二进制文件的框架? 我应该提到我想让这个库是开源的,我认为将一个普通的.framework文件分发给想要使用它的人是很简单的。


    我在Xcode 7上遇到了同样的问题。我通过编辑项目的构建设置(包含框架的项目)来解决此问题。

    通过将框架搜索路径字段设置为$(PROJECT_DIR)或包含.framework文件的目录的路径,它应该有助于Xcode找到模块。

    链接地址: http://www.djcxy.com/p/27605.html

    上一篇: Building a Swift Framework with Xcode 7 (Beta 3) to use as an Embedded Binary

    下一篇: Counting change in Haskell