This was an annoying error message the first time I ran into it. I had just downloaded Xcode 10.2 beta 2 and opened a project I had been working on in Xcode 10.1 and was greeted by Module compiled with Swift 4.2.1 cannot be imported by the Swift 5.0 compiler. After a bit of searching I realized that I needed to rebuild my Carthage modules, and had forgotten that xcode-select needed to be employed as well.
So if you run into this like I did, the fix is simple. Choose which Xcode you need to work with and then use xcode-select to choose it for commandline builds and run carthage update.
For example, if I need to switch to the beta version of Xcode:
[code lang=text]
sudo xcode-select -s /Applications/Xcode.app
carthage update
[/code]
I include a nice Makefile in my projects that streamlines switching back and forth:
|
1 2 3 4 5 6 7 8 9 |
PHONY: xcode xcode-beta xcode: sudo xcode-select -s /Applications/Xcode.app carthage update --platform ios xcode-beta: sudo xcode-select -s /Applications/Xcode-beta.app carthage update --platform ios |
If I need to switch to using Xcode-beta (which I frequently do since my phone is usually running a beta build), I can just type make xcode-beta.
Now, of course, when I open my project back up in Xcode I get Module compiled with Swift 5.0 cannot be imported by the Swift 4.2.1 compiler., but that’s okay, a simple make xcode will get me going!