Carthage build failed Xcode 12 12A7209 building

前端 未结 2 1479
遇见更好的自我
遇见更好的自我 2020-12-11 07:04

Carthage File contents:

github "SwiftyJSON/SwiftyJSON"

Error:

Build Failed
Task failed with exit code 1:
/usr/bin/xc         


        
相关标签:
2条回答
  • 2020-12-11 07:43

    to avoid /usr/bin/xcrun lipo -create issue while updating the Carthage, we have to modify the workspace configuration.

    • Open Terminal and navigate to workspace directory.

    Xcode 12.0

    • run curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/4ba422e5f3a5e7e37cdcb1e232058c5431fc59fc/carthage-xc12.sh -o wcarthage && chmod +x wcarthage

    Xcode 12.0.1

    • run curl https://gist.githubusercontent.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5/raw/f638b57097897b38fc0b1e62a527a814952968d7/carthage-xc12.sh -o wcarthage && chmod +x wcarthage

    Xcode 12.2

    use this script in wcarthage file.

    #!/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 $@
    
    • After completing wcarthage download, run any one of the following commands based on the requirement.

      ./wcarthage update --platform iOS --cache-builds or ./wcarthage bootstrap --platform iOS --cache-builds

    I found this fix at skymobilebuilds

    0 讨论(0)
  • 2020-12-11 07:54

    This is a Carthage & Xcode 12 issue. Unfortunately at the moment there is no update from the Carthage team to address this issue. However, there is a shell script you can run to unblock you. It has worked for me. You can follow the thread on the Carthage github account. https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323

    1. Create a shell script carthage-build.sh and place it in your Xcode project
    #!/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 "$@"
    
    1. Run the script from your terminal to update your Carthage frameworks
    $ ./carthage-build.sh build --platform iOS
    

    Your frameworks should be able to update and compile.

    FYI - I did not write this script, the credit goes to https://github.com/rastersize

    Please follow the thread here for updates on this issue. https://github.com/Carthage/Carthage/issues/3019

    0 讨论(0)
提交回复
热议问题