-
-
Save skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5 to your computer and use it in GitHub Desktop.
#!/bin/bash -e | |
echo "🤡 Applying carthage 12 and 13 workaround 🤡" | |
xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) | |
# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise | |
# the build will fail on lipo due to duplicate architectures. | |
CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3) | |
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' > $xcconfig | |
echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig | |
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1300 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig | |
echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1300__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig | |
echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig | |
export XCODE_XCCONFIG_FILE="$xcconfig" | |
carthage "$@" |
Carthage release notes says that .36 doesn’t fix this.
I have that issue too re sim but it makes sense since this is omitting those arch’s. You should still be able top build for device/archive?
Correct, I can build for device and probably archive, but not simulator.
Weirdly, this is the same error that happens whether I use Carthage normally or use this script.
Thanks so much, works like a charm!
Thanks for the script. I too can't build to simulator. Device is fine.
Xcode (12 GM) console:
The file couldn’t be saved.
Command PhaseScriptExecution failed with a nonzero exit code
Immense thanks! Saved a day (week, actually) for me! 🙇
This isn't helped me with Original error: Unable to launch WebDriverAgent because of xcodebuild failure: Command 'carthage bootstrap --platform iOS\\,tvOS' exited with code 1"
. What I need to do to fix this?
Thank in adnvance!
thanks a lot, this saved me!
Saved me thank you for this !
@skymobilebuilds, you sir, deserve a medal of honor 🎖️
This is running perfectly, depositing and picking up the file in
tmp
. Perhaps the error I'm hitting is different? I can build the Xcode project for device. However, building for simulator I get this message:Module 'DeviceKit' was created for incompatible target arm64-apple-ios9.0: .../Carthage/build/iOS/DeviceKit.framework/Modules/DeviceKit.swiftmodule/arm64.swiftmodule
Is this the problem that we're solving here, builds for device but not for simulator?
Thanks for doing this.
(Upgrading to Carthage 0.36 didn't help. Also this is Version 12.2 beta (12B5018i))
I am experiencing the same issue but with Swinject
framework.
Module 'Swinject' was created for incompatible target arm64-apple-ios9.0
@drosenstark did you find a solution?
This is super nice!
There is a problem in this case.
`*** Building scheme "OmiseSDK" in OmiseSDK.xcodeproj
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/paco/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/omise-ios/v3.5.0/Build/Intermediates.noindex/ArchiveIntermediates/OmiseSDK/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OmiseSDK.framework/OmiseSDK /Users/paco/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/omise-ios/v3.5.0/Build/Products/Release-iphonesimulator/OmiseSDK.framework/OmiseSDK -output /Users/paco/wf-ios/Carthage/Build/iOS/OmiseSDK.framework/OmiseSDK
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/ys/5mpd508n7cn480b721dsq99m0000gn/T/carthage-xcodebuild.XnxTXQ.log`
`*** Building scheme "OmiseSDK" in OmiseSDK.xcodeproj
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/paco/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/omise-ios/v3.5.0/Build/Intermediates.noindex/ArchiveIntermediates/OmiseSDK/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OmiseSDK.framework/OmiseSDK /Users/paco/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0.1_12A7300/omise-ios/v3.5.0/Build/Products/Release-iphonesimulator/OmiseSDK.framework/OmiseSDK -output /Users/paco/wf-ios/Carthage/Build/iOS/OmiseSDK.framework/OmiseSDKThis usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/ys/5mpd508n7cn480b721dsq99m0000gn/T/carthage-xcodebuild.XnxTXQ.log`
Same for me, but the log says BUILD SUCCESSFUL.
#!/bin/sh -e
echo "Carthage wrapper"
echo "Applying Xcode 12 workaround..."
xcconfig="/tmp/xc12-carthage.xcconfig"
# Xcode 12.x
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' > $xcconfig
# General stuff
echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig
echo 'ONLY_ACTIVE_ARCH=NO' >> $xcconfig
echo 'VALID_ARCHS = $(inherited) x86_64' >> $xcconfig
export XCODE_XCCONFIG_FILE="$xcconfig"
echo "Workaround applied. xcconfig here: $XCODE_XCCONFIG_FILE"
carthage $@
If you've already switched to Xcode12, this will still work without adding a version.
@funzin well done
Thank you @funzin for the great update to the script.
where to include this script when trying to solve this issue?
#!/bin/sh -e
echo "Carthage wrapper"
echo "Applying Xcode 12 workaround..."
xcconfig="/tmp/xc12-carthage.xcconfig"
Xcode 12.x
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' > $xcconfig
General stuff
echo 'EXCLUDED_ARCHS =
echo 'ONLY_ACTIVE_ARCH=NO' >> $xcconfig
echo 'VALID_ARCHS = $(inherited) x86_64' >> $xcconfig
export XCODE_XCCONFIG_FILE="$xcconfig"
echo "Workaround applied. xcconfig here: $XCODE_XCCONFIG_FILE"
carthage $@
Carthage release notes says that .36 doesn’t fix this.
I have that issue too re sim but it makes sense since this is omitting those arch’s. You should still be able top build for device/archive?