迦太基构建失败 Xcode 12 12A7209 构建
Carthage build failed Xcode 12 12A7209 building
迦太基文件内容:
github "SwiftyJSON/SwiftyJSON"
错误:
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/samrezikram/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/SwiftyJSON/5.0.0/Build/Intermediates.noindex/ArchiveIntermediates/SwiftyJSON\ tvOS/IntermediateBuildFilesPath/UninstalledProducts/appletvos/SwiftyJSON.framework/SwiftyJSON /Users/samrezikram/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/SwiftyJSON/5.0.0/Build/Products/Release-appletvsimulator/SwiftyJSON.framework/SwiftyJSON -output /Users/samrezikram/Downloads/CarthageApp/Carthage/Build/tvOS/SwiftyJSON.framework/SwiftyJSON
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/px/jx4gljpj47j06qr7blw6b4w80000gn/T/carthage-xcodebuild.1NVy7o.log
为避免更新 Carthage 时出现 /usr/bin/xcrun lipo -create
问题,我们必须修改工作区配置。
- 打开终端并导航到工作区目录。
Xcode 12.0
- 运行
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/4ba422e5f3a5e7e37cdcb1e232058c5431fc59fc/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
Xcode 12.0.1
- 运行
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/f638b57097897b38fc0b1e62a527a814952968d7/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
Xcode 12.2
在 wcarthage 文件中使用此脚本。
#!/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 $@
完成wcarthage下载后,运行根据需要执行以下任一命令。
./wcarthage update --platform iOS --cache-builds
要么
./wcarthage bootstrap --platform iOS --cache-builds
找到了这个修复
这是 Carthage & Xcode 12 期。不幸的是,目前迦太基团队没有更新来解决这个问题。但是,有一个 shell 脚本可以 运行 解除阻止。它对我有用。您可以关注 Carthage github 帐户上的主题。
https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
- 创建一个 shell 脚本
carthage-build.sh
并将其放入您的 Xcode 项目
#!/usr/bin/env bash
# carthage.sh
# Usage example: ./carthage-build.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 "$@"
- 运行 来自您终端的脚本,用于更新您的 Carthage 框架
$ ./carthage-build.sh build --platform iOS
您的框架应该能够更新和编译。
仅供参考 - 我没有写这个脚本,功劳归于 https://github.com/rastersize
请关注此处的线程以获取有关此问题的更新。
https://github.com/Carthage/Carthage/issues/3019
我也遇到了同样的问题 - 这通常表示项目本身编译失败。
这是 Xcode 12 的问题。在我的例子中,这有效(来自 skymobilebuilds 的修复)
在您的终端使用中,
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/61affe5b13efaeb83ba3aaf5ef2cb97bab893485/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
那么用法就是,
./wcarthage update --platform iOS
迦太基文件内容:
github "SwiftyJSON/SwiftyJSON"
错误:
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/samrezikram/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/SwiftyJSON/5.0.0/Build/Intermediates.noindex/ArchiveIntermediates/SwiftyJSON\ tvOS/IntermediateBuildFilesPath/UninstalledProducts/appletvos/SwiftyJSON.framework/SwiftyJSON /Users/samrezikram/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/SwiftyJSON/5.0.0/Build/Products/Release-appletvsimulator/SwiftyJSON.framework/SwiftyJSON -output /Users/samrezikram/Downloads/CarthageApp/Carthage/Build/tvOS/SwiftyJSON.framework/SwiftyJSON
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/px/jx4gljpj47j06qr7blw6b4w80000gn/T/carthage-xcodebuild.1NVy7o.log
为避免更新 Carthage 时出现 /usr/bin/xcrun lipo -create
问题,我们必须修改工作区配置。
- 打开终端并导航到工作区目录。
Xcode 12.0
- 运行
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/4ba422e5f3a5e7e37cdcb1e232058c5431fc59fc/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
Xcode 12.0.1
- 运行
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/f638b57097897b38fc0b1e62a527a814952968d7/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
Xcode 12.2
在 wcarthage 文件中使用此脚本。
#!/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 $@
完成wcarthage下载后,运行根据需要执行以下任一命令。
./wcarthage update --platform iOS --cache-builds
要么./wcarthage bootstrap --platform iOS --cache-builds
这是 Carthage & Xcode 12 期。不幸的是,目前迦太基团队没有更新来解决这个问题。但是,有一个 shell 脚本可以 运行 解除阻止。它对我有用。您可以关注 Carthage github 帐户上的主题。 https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
- 创建一个 shell 脚本
carthage-build.sh
并将其放入您的 Xcode 项目
#!/usr/bin/env bash
# carthage.sh
# Usage example: ./carthage-build.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 "$@"
- 运行 来自您终端的脚本,用于更新您的 Carthage 框架
$ ./carthage-build.sh build --platform iOS
您的框架应该能够更新和编译。
仅供参考 - 我没有写这个脚本,功劳归于 https://github.com/rastersize
请关注此处的线程以获取有关此问题的更新。 https://github.com/Carthage/Carthage/issues/3019
我也遇到了同样的问题 - 这通常表示项目本身编译失败。
这是 Xcode 12 的问题。在我的例子中,这有效(来自 skymobilebuilds 的修复)
在您的终端使用中,
curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/61affe5b13efaeb83ba3aaf5ef2cb97bab893485/carthage-xc12.sh -o wcarthage && chmod +x wcarthage
那么用法就是,
./wcarthage update --platform iOS