[xcode7] Xcode 7 및 ENABLE_BITCODE = YES 설정이 작동하지 않습니다.

Xcode의 새로운 ENABLE_BITCODE 설정에 대한 여러 스레드를 따라 갔고 가능한 한 많이 시도했지만 (내가 xcode 전문가가 아니라는 것을 인정) 여전히 내 테스트 전화에서 사용하기 위해 프로젝트를 컴파일 할 수 없습니까?

내 앱은 시뮬레이터에서 잘 실행되지만 테스트를 위해 iPhone에 배포 할 수 없습니다. 후자의 경우 iOS 9 베타를 설치했습니다.

이제 여기에 내가받은 오류 메시지가 있습니다. 설정이 내 프로젝트의 일부인 PARSE.com lib에 영향을 미치지 않는 것 같습니다. 프로젝트를 휴대폰에 배포하려면 어떻게해야합니까? 조언을 해주셔서 감사합니다.

    Ld /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-  bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse normal armv7
cd /Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -L/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse -F/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -filelist /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse.LinkFileList -install_name @rpath/Parse.framework/Parse -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseLib -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -ObjC -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse_dependency_info.dat -o /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse

---
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: '/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse/libParseLib.a(PFSQLiteDatabase.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)



답변

사용중인 빌드 구성 Enable BitcodeNO대해 선택 DEBUG하셨습니까 (예 🙂 ? 프로젝트 enable bitcode-> 대상- > 빌드 설정 – > 검색 -> 설정 NO에서 확인할 수 있습니다 DEBUG(테스트 릴리스 전에 libs 업데이트를 시도하는 것이 좋습니다. 이미 비트 코드가 포함되어있을 수 있습니다). 그런 다음 구성표 편집-> 실행-> DEBUG구성 atm 이 있는지 확인하십시오 .

여기에 이미지 설명 입력


답변

CocoaPods를 사용 ENABLE_BITCODE = NO하는 프로젝트의 경우 프로젝트 및 Pods 컨테이너 프로젝트 대상 모두에 설정해야합니다 .

이 오류

Ld /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils normal arm64
    cd /Users/maximveksler/Developer/ParseUI-iOS/Pods
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -L/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils -F/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -filelist /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils.LinkFileList -install_name @rpath/ParseTwitterUtils.framework/ParseTwitterUtils -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseTwitterUtilsLib -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.1 -Xlinker -dependency_info -Xlinker /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils_dependency_info.dat -o /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils

ld: '/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils/libParseTwitterUtilsLib.a(PFTwitterAuthenticationProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

해결 된 사람 :

여기에 이미지 설명 입력

여기에 이미지 설명 입력


답변

나는 또한 Xcode7에서 같은 문제에 직면했습니다. 이에 대한 해결책 :

  • 이동 PROJECT
  • 짓다 Settings
  • 고르다 All Tab
  • 검색어 입력 Enable Bitcode
  • Update Flag받는 사람 No(프로젝트 아래 (두 번째 열))


답변

GoogleAnalytics cocoa pod 라이브러리와 비슷한 문제가 있었고 라이브러리가 iOS 8이 설치된 iPhone 6 용으로 컴파일되지 않았습니다.

내 해결책은 Pods 프로젝트가 아닌 애플리케이션 프로젝트의 대상에서 “Enable Bitcode”플래그를 사용하지 않는 것입니다.


답변

비트 코드가 표시되지 않으면 모두를 선택하십시오. xcode가 Basic을 선택하면 Bitcode 옵션이 표시되지 않습니다.

여기에 이미지 설명 입력

All을 선택하면 Bitcode를 볼 수 있습니다. 그런 다음 광고 구성에 대해 아니오를 설정하십시오.
여기에 이미지 설명 입력


답변

내 프로젝트를 위해 설정했습니다.

MyProjectTarget-> 빌드 설정-> 비트 코드 활성화 = NO


답변

모두가 말했듯이, 답이되는 설정 Enable BitcodeNo빌드 설정에서 ,하지만 난 당신의 일부가에서이 일에 관심이있을 것 같아요 명령 행 .

내 Xcode 프로젝트는 Unity에서 생성되고 있으며 Xcode 프로젝트 설정에 대한 수동 개입을 원하지 않습니다. PlistBuddy를 사용하여 plist파일의 값을 업데이트 하는 것과 같은 빌드 설정을 편집 할 수있는 더 좋은 방법이나 도구가있을 수 있습니다. 빌드 설정을 위해이 작업을 수행하는 도구를 모르기 때문에 sed를 사용하고 있습니다.

sed : 정규식을 기반으로 대체를 실행합니다.

어떻게 설정 Enable BitcodeNo명령 줄에서 :

여기에서 내 프로젝트 이름은 Unity-iPhoneXcode 프로젝트의 루트에서 다음 명령을 실행합니다.

sed -i -e 's/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g' \
Unity-iPhone.xcodeproj/project.pbxproj

-e-실행할 sed 명령 지정 -i-
파일을 내부 편집, 각 파일에 대해 개별적으로 스크립트 실행

-i그것이하는 일의 미리보기 만 원한다면 제거하십시오 😉

참고 모든 빌드 구성이 명령을 사용하여 변경됩니다은 라인 ENABLE_BITCODE = YES;내에서 6 번 나타났다 project.pbxproj.

이제 fastlane 이 나머지 작업을 처리 하므로 내 빌드 단계를 완전히 자동화 할 수 있습니다 !