gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:32:53 26 4
gpt4 key购买 nike

自从在 iOS 8 中引入嵌入式二进制文件以来,我一直想将我的许多常用代码移植到框架中。我决定等一年再做,今年,有了 Xcode 7 Beta 和 iOS 9,我就开始这样做了。

我已经在 Xcode 7 中启动了一个 Cocoa Touch 框架项目,我想将它编译成一个可用的框架。我可以得到它来将我的项目编译成.framework,但是有几个问题;也就是说,该框架似乎无法导入到新项目中(我将很快描述我为此所做的步骤)。因此,我不确定我的框架是否有任何可见符号。

这就是我创建框架所做的工作:

  1. 将我的框架创建为 Cocoa Touch 框架。
  2. 转到我的目标的构建阶段,转到 header ,并将我所有的 Swift 文件添加到“公共(public)”部分,希望可以导出我所有的符号,而不必将它们标记为 public
  3. 我试图将我的项目存档为一个框架。目前,Xcode 7 Beta 3 似乎有一个错误(将在今天晚些时候报告),它会生成损坏的存档文件。出于这个原因,我无法从管理器窗口中获取我的框架。为了解决这个问题,我将 Xcode 中运行操作的模式从调试更改为发布,构建它并从我的项目的 build/iphoneos-release 中获取它生成的 .framework目录。这是一个快速测试,因此我不需要为模拟器生成的框架。

这就是我尝试将框架添加到新项目时所做的:

  1. 创建了一个“框架”组(用于组织目的)并将框架拖到那里,当它询问我是否要将文件复制到我的项目目录时选择"is"。
  2. 转到我的目标设置,从“链接库”中删除我的框架(它是自动添加到那里的),而是将它添加到嵌入式二进制文件中。这再次将框架添加到链接库,所以我不得不从那里删除它两次。将框架留在链接库中会导致链接器错误(找不到框架 - 不知道为什么,但我认为这与我的问题无关,我也应该向 Apple 报告),但是一旦你从那里删除它似乎将其添加到嵌入式二进制文件时编译正常。
  3. 试图在文件中导入我的框架。 Xcode 提示“没有这样的模块”。

不幸的是,尽管嵌入式框架已经存在了大约一年,但我找不到太多关于该主题的文章。

所以我的问题是:我是否正确地创建了框架,从而使我的框架/其他任何东西有可能由于 Xcode 7 Beta 错误而失败?或者是否有不同的程序来创建我想用作嵌入式二进制文件的框架?我可能应该提一下,我想让这个库开源,我认为向想要使用它的人分发一个普通的 .framework 文件会很整洁。

最佳答案

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

通过将 Framework Search Paths 字段设置为 $(PROJECT_DIR) 或包含 .framework 文件的目录路径,它应该可以帮助 Xcode 找到模块。

关于ios - 使用 Xcode 7 (Beta 3) 构建 Swift 框架以用作嵌入式二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31483110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com