标签: embedded-binary

什么时候我们应该在Xcode中使用"嵌入式二进制文件"而不是"链接框架"?

关于这两个选项之间的区别是一个很好的问题,如Link Binary与库VS Embed Frameworks中描述的那样.

似乎我们可以选择使用它们,只是想知道哪种情况我们应该更好地使用嵌入式二进制文件,或者不是链接框架?

解决这个问题的任何可靠实例都更清晰 谢谢

xcode frameworks ios embedded-binary

128
推荐指数
3
解决办法
3万
查看次数

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

自从嵌入式二进制文件在iOS 8中引入以来,我一直希望将许多常用代码移植到框架中.我决定等一年才做到这一点,而今年,凭借Xcode 7 Beta和iOS 9,我开始这么做了.

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

这是我创建框架所做的:

  1. 创建我的框架作为Cocoa触摸框架.
  2. 去了我的目标的Build Phases,去了Headers,并将我所有的Swift文件添加到了"Public"部分,希望能导出我所有的simbols,而不必将它们标记为public.
  3. 我试图将我的项目归档为框架.目前,看起来Xcode 7 Beta 3有一个错误(将在今天晚些时候报告),它会生成损坏的存档文件.出于这个原因,我无法从组织者窗口获取我的框架.为了解决这个问题,我将Xcode中的Run操作的模式从Debug更改为Release,构建它并.framework从我的项目build/iphoneos-release目录中获取它.这是一个快速测试,因此我不需要为仿真器生成的框架.

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

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

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

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

xcode ios swift2 xcode7-beta3 embedded-binary

7
推荐指数
1
解决办法
2780
查看次数

标签 统计

embedded-binary ×2

ios ×2

xcode ×2

frameworks ×1

swift2 ×1

xcode7-beta3 ×1