这是"构建选项"下的新设置。它有什么作用?我似乎无法找到任何有关它的文档。我的猜测是:在混合的Objective-C / Swift应用程序中是否必须将其设置为YES
才能告诉Xcode链接Swift运行时?
答案 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"相当一点:嵌入式内容,嵌入式框架等。因为扩展程序的组织,构建和运行与普通应用程序完全不同,所以我不会感到惊讶的是,这样的构建设置与它们有关。