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


96

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)

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

1
잘! 예 그리고 아니오. 나는 그것을 POD 타겟에 설정하지 않았습니다. 당신의 힌트가 저를 거기에 가져 왔습니다. 감사합니다
DirkLX 2015

듣기 좋습니다 :) 다른 사람들에게 유용 할 수 있으므로 답변으로 게시 할 것입니다.
Vive

비트 코드를 변경해야하는 이유는 무엇입니까? 이전에는 값을 업데이트 할 필요가 없습니다. 논리적 이유가 있습니까? 감사합니다
msmq 2015 년

모두했지만 여전히 동일한 오류로 장치에서 앱 충돌이 발생했습니다. iOS 9.1을 사용하고 있습니다. 도와주세요!
Md Rais

답변:


133

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

여기에 이미지 설명 입력


1
@Zorayr 내 게시물에 이미지를 추가 했으므로 먼저 앱 빌드 설정을 확인하고 앱 빌드 설정에서이 플래그를 변경해야합니다. 도움이되지 않는 경우에만 Pod로 똑같이하십시오.
Vive

3
가로 Enable Bitcode설정된 경우 앱 스토어에서 애플리케이션이 수락 NO됩니까?
Ne AS

@NeAS 예. 현재는 비트 코드를 활성화 할 필요가 없습니다.
Vive

모든 포드에 대해 비트 코드를 비활성화해야합니다
Vadim Kurochkin

53

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)

해결 된 사람 :

여기에 이미지 설명 입력

여기에 이미지 설명 입력


Enable Bitcode = NO 옵션으로 제출하면 Apple에서 앱을 거부합니까?
Ganesh Guturi 2015 년

@ G.Ganesh는 별도의 질문으로 게시 해주세요. 정책은 tvOS와 watchOS에 따라 다르며 대답이 '예'입니다. iOS는 현재 아니오, 미래는 예입니다.
맥심 Veksler

@GaneshGuturi 현재는 그렇습니다. 그러나 아마도 애플은 미래에 그것을 잘라낼 것입니다. 자세한 설명은 다음과 같습니다. stackoverflow.com/a/31207170/849616 .
Vive

17

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

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

15

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

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


그것이 내 대답에 대한 의견에서 말한 것입니다. 프로젝트 설정에서 시도하려면 작동하지 않는 경우에만 포드 프로젝트로 전환하십시오.
Vive

대상 및 프로젝트를 빌드 설정 비트 코드 NO로 전환하면 ARCHIVING에서 작동하지 않습니다. Sim 빌드에서 작동합니까? XCODE 7.0.1
ort11

11

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

여기에 이미지 설명 입력

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


10

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

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


1
앱 스토어에서 신청이 거부 되나요?
Ne AS

5

모두가 말했듯이, 답이되는 설정 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 이 나머지 작업을 처리 하므로 내 빌드 단계를 완전히 자동화 할 수 있습니다 !


3

enable_bitcode 플래그를 찾지 못한 경우. 검색 창 옆의 상단 툴바에서 "모두"탭을 클릭합니다. 여기에 이미지 설명 입력


답변을 더 잘 설명하기 위해 코드를 추가하세요.
Usman Maqbool

1

프로젝트에서 BITCODE 설정을 변경할 수없는 경우 터미널에서이 명령을 시도하십시오.

xcodebuild -target "target"-configuration "configuration"ENABLE_BITCODE = NO

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.