Skip to content

Commit

Permalink
fix(Carthage): fix Carthage build and archiving
Browse files Browse the repository at this point in the history
Carthage is broken with Xcode 12. A temporary script has been added that adds a workaround to the issue. The script can be removed and the default Fastlane action can be used when a new Carthage version has been released with a fix.

Carthage/Carthage#3019
  • Loading branch information
fjcaetano committed Jan 4, 2021
1 parent 56cb6f3 commit 90ee945
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 14 deletions.
17 changes: 17 additions & 0 deletions carthage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash

# carthage.sh
# Usage example: ./carthage.sh build --platform iOS

set -euo pipefail

xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT

# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise
# the build will fail on lipo due to duplicate architectures.
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 = $(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 "$@"
49 changes: 35 additions & 14 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -80,18 +80,30 @@ platform :ios do

desc "Lint Carthage lib"
lane :carthage_lint do
carthage(
command: "update",
platform: "iOS",
cache_builds: true,
)

carthage(
command: "build",
platform: "iOS",
cache_builds: true,
no_skip_current: true,
)
# This is a temporary fix while Carthage is broken with Xcode 12
# https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
#
# The default Fastlane action can be used when a new Carthage version with a fix has been released
# and the ./carthage.sh script can be removed
Dir.chdir("..") do
sh("./carthage.sh", "update", "--platform", "iOS", "--cache-builds")

sh("./carthage.sh", "build", "--no-skip-current", "--platform", "iOS", "--cache-builds")
end

# carthage(
# command: "update",
# platform: "iOS",
# cache_builds: true,
# )

# carthage(
# command: "build",
# platform: "iOS",
# cache_builds: true,
# no_skip_current: true,
# )
end

desc "Deploy a new version to Github and Cocoapods"
Expand All @@ -108,9 +120,18 @@ platform :ios do
UI.user_error! "Podspec version different than tag name"
end

carthage(
command: "archive",
)
# This is a temporary fix while Carthage is broken with Xcode 12
# https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
#
# The default Fastlane action can be used when a new Carthage version with a fix has been released
# and the ./carthage.sh script can be removed
Dir.chdir("..") do
sh("./carthage.sh", "archive")
end

# carthage(
# command: "archive",
# )

pod_push(
path: "ReCaptcha.podspec",
Expand Down

0 comments on commit 90ee945

Please sign in to comment.