I am using Xcode 12.0 and Carthage 0.35.0 and when I do Carthage bootstrap --platform iOS
or Carthage update --platform iOS --no-use-binaries
on a framework that I have developed I get this error. I did not have this problem in Xcode 11.7.
*** Building scheme "MyFrameworkKit" in MyFrameworkKit.xcodeproj
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/myname/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/MyFrameworkKit/579b0a4ac155ab413da1d73609bf5f24e5ed7cc8/Build/Intermediates.noindex/ArchiveIntermediates/MyFrameworkKit/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/MyFrameworkKit.framework/MyFrameworkKit /Users/myname/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/MyFrameworkKit/579b0a4ac155ab413da1d73609bf5f24e5ed7cc8/Build/Products/Release-iphonesimulator/MyFrameworkKit.framework/MyFrameworkKit -output /Users/myname/Developer/myapp/ios/Carthage/Build/iOS/MyFrameworkKit.framework/MyFrameworkKit
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/11/tjwvq_yx4mj042kv46mxz1wh0000gn/T/carthage-xcodebuild.gaIzr4.log
When I look at the log file mentioned above. I see that the build the was successful. But when I open Xcode and try to build the app I see the message: /Users/myname/Developer/myapp/ios/myapp.xcodeproj Building for iOS Simulator, but the linked framework 'MyFrameworkKit.framework' was built for iOS.
Something must have changed in what type of framework build I can bring into my app from Xcode 11.7 to Xcode 12.0. Do you know what it is that I am missing?
Update:
I have been using the workaround suggested in the accepted answer below successfully. Seems like there is a new Carthage release that I yet I have to try. But it does say that it fixes this issue: https://github.com/Carthage/Carthage/releases/tag/0.36.1
I used the suggestion here: https://newreleases.io/project/github/Carthage/Carthage/release/0.37.0
Basically: To build XCFrameworks into your app, run Carthage with --use-xcframeworks and drag the produced XCFrameworks into your Xcode target’s Embedded binaries section...
This is the command I used: carthage bootstrap --platform iOS --use-xcframeworks
Now Carthage 0.37 finally is capabable of building XCFrameworks 🎉 This makes it compatible with Xcode 12 and the workaround can be deleted. Just perform the following steps:
# Delete carthage cache
rm -rf ~/Library/Caches/org.carthage.CarthageKit
# Delete carthage build folder
rm -rf Carthage/Build
# Delete DerivedData folder
rm -rf ~/Library/Developer/Xcode/DerivedData
# Build all dependencies as XCFrameworks
carthage bootstrap --use-ssh --use-xcframeworks --cache-builds
See the Github release 0.37.0 for detailled information and a migration guide from frameworks to XCFrameworks. The guide tells you how to integrate the xcframeworks and what you have to remove from your project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With