What does the "Embedded Content Contains Swift Code" build setting in Xcode 6 do?

Johannes Fahrenkrug picture Johannes Fahrenkrug · Jun 11, 2014 · Viewed 20.8k times · Source

It's a new setting under "Build Options". What does it do? I can't seem to find any documentation about it. My guess is this: Does it have to be set to YES in a mixed Objective-C/Swift app to tell Xcode to link against the Swift Runtime?

Answer

vladof81 picture vladof81 · Sep 6, 2014

It does not need to be Yes for linking. This setting is only for when you have a pure Objective-C target that depends on a mixed-source or pure Swift target.

Description:

Enable this setting to indicate that content embedded in a target's product contains Swift code, so that the standard Swift libraries can be included in the product.

Also in the release note of Beta 7:

The build step which embeds the Swift standard libraries in a bundle now only runs for application product types, and only if the application itself, independent of any embedded content, contains Swift source files. When building an application that itself does not contain Swift source files, but embeds other content like frameworks, XPC services, app extensions, etc. that do contain Swift code, you must set the build setting "Embedded Content Contains Swift Code" (EMBEDDED_CONTENT_CONTAINS_SWIFT). That way the Swift libraries will be included in the application.

Regards