什么是#34;嵌入式内容包含Swift Code"在Xcode 6中构建设置吗?

时间:2014-06-11 13:11:37

标签: xcode swift xcode6 ios-app-extension

这是"构建选项"下的新设置。它有什么作用?我似乎无法找到任何有关它的文档。我的猜测是:在混合的Objective-C / Swift应用程序中是否必须将其设置为YES才能告诉Xcode链接Swift运行时?

3 个答案:

答案 0 :(得分:24)

链接不需要。此设置仅适用于具有依赖于混合源或纯Swift目标的纯Objective-C目标的情况。

说明

  

启用此设置以指示嵌入在目标产品中的内容包含Swift代码,以便标准Swift库可以包含在产品中。

同样在Beta 7的发行说明中:

  

将Swift标准库嵌入到bundle中的构建步骤现在只运行   应用程序产品类型,仅当应用程序本身,独立于任何嵌入式   内容,包含Swift源文件。构建本身不包含的应用程序时   Swift源文件,但嵌入其他内容,如框架,XPC服务,应用程序扩展,   如果包含Swift代码,则必须设置构建设置" Embedded Content Contains   Swift Code" (EMBEDDED_CONTENT_CONTAINS_SWIFT)。这样Swift库就会这样   被包括在申请中。

此致

答案 1 :(得分:3)

根据Embedding Content with Swift in Objective-C

  

当且仅当您构建应用程序并且此应用程序本身包含Swift源文件时,才会将Swift标准库复制到一个包中

     

如果您正在构建一个不使用Swift但嵌入内容的应用程序,那么Xcode将不会在您的应用中包含这些库。因此,您的应用会在启动时崩溃

     

要解决此问题,请将嵌入式内容包含Swift代码(EMBEDDED_CONTENT_CONTAINS_SWIFT)构建设置设置为YES。此构建设置指定目标产品是否嵌入了带Swift代码的内容,当设置为YES时,Xcode会在应用程序中嵌入Swift标准库

答案 2 :(得分:2)

我不相信Swift和Objective-C之间需要具备通用互操作性。它就像添加Swift代码和编辑桥接头一样简单。

如果您看到有关iOS扩展的任何文档,那么该术语将提及" embedded"相当一点:嵌入式内容,嵌入式框架等。因为扩展程序的组织,构建和运行与普通应用程序完全不同,所以我不会感到惊讶的是,这样的构建设置与它们有关。