Add Carthage wrapper to circumvent issues with Xcode 12

Carthage is currently not working with Xcode 12. As a workaround a wrapper script has been proposed (see https://gist.github.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5). Until the issue is fixed and Carthage can built again with Xcode 12, the wrapper must be used instead of the direct `carthage` command.
This commit is contained in:
Danny Moesch 2020-09-19 15:30:29 +02:00 committed by Mingshen Sun
parent 293df9ea6e
commit cfd74c773d
4 changed files with 23 additions and 5 deletions

View file

@ -29,7 +29,7 @@ before_script:
ls -ld Carthage/Build/iOS/*framework
else
echo "Bootstrap carthage dependencies."
travis_wait 60 carthage bootstrap --platform iOS
travis_wait 80 ./wcarthage bootstrap --platform iOS
fi
- |
if [ ! $(git diff --name-only "$TRAVIS_COMMIT_RANGE" | grep -E "gopenpgp_build.sh") ] && [ -d "go/dist/Crypto.framework" ]; then

View file

@ -1,5 +1,5 @@
github "SVProgressHUD/SVProgressHUD" "2.2.5"
github "kishikawakatsumi/KeychainAccess" "v4.2.0"
github "kishikawakatsumi/KeychainAccess" "v4.2.1"
github "leonbreedt/FavIcon" "3.1.0"
github "mattrubin/Base32" "1.1.2+xcode10.2"
github "mattrubin/OneTimePassword" "3.2.0"

View file

@ -47,10 +47,10 @@ For more, please read the [wiki page](https://github.com/mssun/passforios/wiki).
## Building Pass for iOS
1. Install libtool, automake, cmake, carthage, cocoapods, and go: `brew install libtool automake cmake carthage cocoapods go`.
2. Run carthage bootstrap in the project root directory: `carthage update ` then `carthage bootstrap --platform iOS` (this may take some time).
2. Install dependencies via Carthage in the project root directory: `./wcarthage update` then `./wcarthage bootstrap --platform iOS`. This may take some time.
3. Run `./gopenpgp_build.sh` to build go dependencies.
4. Run pod install in the project root directory: `pod install`.
5. Open `pass.xcworkspace` file in Xcode.
4. Install dependencies via CocoaPods in the project root directory: `pod install`.
5. Open the `pass.xcworkspace` file in Xcode.
6. Build & Run.
## License

18
wcarthage Executable file
View file

@ -0,0 +1,18 @@
#!/bin/sh -e
echo "Applying Xcode 12 workaround ..."
xcconfig="/tmp/xc12-carthage.xcconfig"
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_12A7209 = arm64 arm64e armv7 armv7s armv6 armv8' > $xcconfig
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $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
echo 'ONLY_ACTIVE_ARCH=NO' >> $xcconfig
echo 'VALID_ARCHS = $(inherited) x86_64' >> $xcconfig
export XCODE_XCCONFIG_FILE="$xcconfig"
echo "Workaround has been applied. xcconfig file can be found at '$XCODE_XCCONFIG_FILE'."
echo "Running Carthage ..."
carthage $@