-
[iOS] Carthage 가 Xcode 12에서 빌드오류가 난다고!👻 iOS 2021. 3. 19. 22:17
이전 포스팅과 관련이 있지만 안 보셔도 무방합니다. 실패사례니까... ㅠㅠ
2020.12.28 - [👻 iOS] - [iOS] Carthage 로 RIBs 프로젝트 셋팅하기 #1
Carthage 로 RIBs 를 설치해 보려고 했다가 망한 포스팅을 이제야 살려봅니다.
후... 저는 저 시기 이후로 Carthage가 싫어졌어요.
물론, 빌드속도에 엄청난 이득을 주는 것에는 여전히 큰 신뢰를 갖고 있지만
이렇게 Xcode 버전이 올라가면서 빌드 자체를 실패해 버리면 나중에 업무 마비가 오는게 아닌가 걱정이 들어서요;;
어쨌든,
Carthage 를 잊고 지내다가 Xcode 12에서 arm64 설정으로 빌드를 하다보니 오류가 생긴것이다. 라며 shell script 를 이용해 강제로 x86_64 로 셋팅해서 빌드를 하라는 얘길 접하게 됩니다.
와..... 그거였어?
Carthage git에 이슈를 찾아보니 역사가 유구하네요. 많은 사람들이 속앓이 했을듯.
집단지성으로 만들어진 스크립트는 아래 링크와 같습니다.
github.com/Carthage/Carthage/issues/3019#issuecomment-734415287
#!/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. for simulator in iphonesimulator appletvsimulator; do echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_${simulator}__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig done echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(PLATFORM_NAME)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig export XCODE_XCCONFIG_FILE="$xcconfig" cat $XCODE_XCCONFIG_FILE carthage "$@"
carthage.sh 파일을 위 내용으로 만들어서 아래와 같이 실행!
> chmod +x carthage.sh > ./carthage.sh build or ./carthage.sh update --use-submodules
이제 ** BUILD SUCCEEDED ** 를 보실 수 있습니다.
하아......
그럼 이제 빌드 되었으니 프로젝트에 넣어 주어야 겠죠.
RIBs 셋팅은 다음 시간에 계속...