Ios – Using Swift 3 in Xcode 10.2 – Command /Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/swiftc failed with exit code 1

iosswiftxcode

My goal is to get the new Xcode 10.2 compile and run our projects that are build using Swift 3 and 4.2 (some cocoapods too) and since Xcode 10.2 comes with Swift 5, an unsupported swift error came up when trying to run the projects out of the box (this is expected):

enter image description here

The solution here is to use an older toolchain as stated on blogs like this, which i did.

enter image description here

All good so far. However, after installing the Swift 3 toolchain from Swift.org, compiling the project will bring the following error:

Command
/Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/swiftc
failed with exit code 1

enter image description here

I already deleted Derived Data folder, cleanup pods (my podfile) and reinstalled them, restarted Xcode and Mac multiple times.

Running xcrun -f swift and swift --version will indeed print the correct swift 3.0 toolchain

enter image description here

Yes, I know I could just stay with Xcode 10.1 and don't have these issues. Code migration to Swift 4 is also an option but we don't have the time at hand for now so I'm trying to workout this walkaround.

Please help me to resolve this issue, I'm completely stuck. Thanks in advance.

Best Answer

Xcode10.2 Release Notes

Swift 5 no longer supports the Swift 3 Package.swift tools-version. Packages still on the Swift 3 Package.swift tools-version should update to a newer tools-version. (41974124)

Swift 5.0

Source Compatibility As with Swift 4.2, the vast majority of sources that built with the Swift 4.2 compiler should compile with the Swift 5.0 compiler.

However, the Swift 3 compatibility mode will not be supported in the Swift 5 compiler. Swift 4.2 is the last release of Swift to support Swift 3 mode. There are important changes to both the surface of the language and the interior of its implementation in the releases following Swift 3 that will be the basis of future (and lasting) source and binary stability.

Related Topic