Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

With Swift 5 and iOS 12.2+ should I change "Always Embed Swift Standard Libraries" to NO?

Tags:

xcode

ios

swift

Somehow "Always Embed Swift Standard Libraries" for all of my targets is YES. Probably due to historical development from Swift 1 to 5. I'm using Xcode 10.2 now, upgraded the targets and my "Swift language version" is 5 for all of them.

Out of interest I created an empty new project with Xcode 10.2 and it is created with "Always Embed Swift Standard Libraries" as NO for both Debug and Release builds.

I have a feeling that even if I leave it as it is, Apple will strip standard Swift libraries anyway as a part of thinning for iOS 12.2+?

So what's the correct default since swift 5? Any benefits from either keeping it at YES or changing to NO?

[Update] Thanks to Cœur for a comment. It really looks like that one of the CocoaPods versions did it. Project is set to NO, but all the targets using CocoadPods were YES.

like image 215
Stanislav Dvoychenko Avatar asked Mar 26 '19 19:03

Stanislav Dvoychenko


1 Answers

The default for new projects is NO and (as far as I know) always has been. I have never had "Always embed" set to YES, and my projects have always worked just fine. So unless there is some really good reason why this was YES, it probably shouldn't have been.

Note that the libraries are stripped out only if you are building against the 12.2 SDK and going onto a machine with 12.2 (or later). The libraries are still needed to run on a 12.1 or earlier machine.

like image 185
matt Avatar answered Oct 02 '22 23:10

matt