-
-
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 "$@" |
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 $@
For anyone getting project compile errors like
Module 'xxx' was created for incompatible target arm64-apple-ios9.0
after applying this patch, there is one thing to be done, to fix it.Exclude
arm64
from every scheme foriOS Simluator SDK
, inside your target.