web-dev-qa-db-de.com

Xcode 7 und ENABLE_BITCODE = YES-Einstellung funktioniert nicht

Ich habe mehrere Threads um die neue ENABLE_BITCODE-Einstellung in Xcode verfolgt, habe auch so viel wie möglich versucht (zugegeben, ich bin kein Xcode-Profi), aber ich kann das Projekt immer noch nicht für mein Testtelefon kompilieren lassen.

Meine App läuft gut auf dem Simulator, aber ich kann sie nicht zum Testen auf meinem iPhone bereitstellen. Auf letzterem habe ich gerade iOS 9 Beta installiert.

Nun, hier ist die Fehlermeldung, die ich erhalte. Es scheint, dass sich die Einstellung nicht auf die PARSE.com-Bibliothek auswirkt, die Teil meines Projekts ist. Wie kann ich mein Projekt auf meinem Handy bereitstellen? Danke für jeden Rat.

    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)
86
DirkLX

Sind Sie sicher, dass Sie Enable Bitcode für NO für die von Ihnen verwendete Build-Konfiguration ausgewählt haben (z. B. DEBUG)? Sie können dies unter Projekt-> Ziel-> Build-Einstellungen-> Suche enable bitcode-> set NO in DEBUG auschecken (es ist wichtig, dass Sie vor dem Test-Release versuchen, die Libs zu aktualisieren, möglicherweise enthält sie bereits Bitcode). Dann bearbeiten Sie das Schema -> Ausführen -> Überprüfen Sie, ob Sie DEBUG config atm haben.

 enter image description here

129
Vive

Beachten Sie, dass Sie bei Projekten, die CocoaPods verwenden, ENABLE_BITCODE = NO sowohl für das Projekt als auch für die Projektziele des Pod-Containers festlegen sollten.

Dieser Fehler 

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)

wurde gelöst von:

 enter image description here

 enter image description here

49
Maxim Veksler

Ich hatte ein ähnliches Problem mit der GoogleAnalytics-Bibliothek für Kakaobohnen, und die Bibliothek wurde nicht für iPhone 6 mit iOS 8 kompiliert.

Meine Lösung bestand darin, das KE-Kennzeichen "Bitcode aktivieren" im Ziel des Anwendungsprojekts zu aktivieren - nicht im Pods-Projekt.

15
ArturOlszak

Das gleiche Problem hatte ich auch in Xcode7. Lösung dafür:

  • gehe zu PROJECT
  • build Settings
  • All Tab auswählen 
  • suche eingeben Enable Bitcode
  • Update Flag bis No (der sich unterhalb Ihres Projekts befindet (zweite Spalte))
15
Harshal Wani

Wenn Ihr Bitcode nicht angezeigt wird, wählen Sie All. Wenn Sie xcode auswählen, wird Ihre Bitcode-Option nicht angezeigt.

 enter image description here

Wenn Sie Alle auswählen, können Sie Bitcode sehen. Danach dann Nein für Anzeigen config  enter image description here

10
ethemsulan

Ich habe es gerade für mein Projekt festgelegt.

MyProjectTarget -> Build-Einstellungen -> Bitcode aktivieren = NEIN

10
Alexander

Wie alle sagten, lautet die Antwort set Enable Bitcode auf No in den Build-Einstellungen, aber ich denke, einige von Ihnen könnten daran interessiert sein, dies über die Befehlszeile zu tun.

Mein Xcode-Projekt wird von Unity erstellt, und ich möchte keinen manuellen Eingriff in die Xcode-Projekteinstellungen. Vielleicht gibt es eine bessere Methode oder ein Werkzeug, mit dem Sie die Build-Einstellungen ein wenig ändern können, zum Beispiel wie Sie mit PlistBuddy Werte in plist-Dateien aktualisieren können. Ich kenne kein Tool, das dies für Build-Einstellungen macht, also verwende ich sed .

sed: Ausführen von Ersetzungen basierend auf regulären Ausdrücken.

So setzen Sie Enable Bitcode von der Befehlszeile auf No:

Hier ist mein Projektname Unity-iPhone, daher führe ich den folgenden Befehl vom Stammverzeichnis meines Xcode-Projekts aus:

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

-e - Geben Sie die auszuführenden sed-Befehle an
-i - Dateien direkt bearbeiten, Skripts für jede Datei separat ausführen 

Entfernen Sie -i, wenn Sie nur eine Vorschau dessen erhalten möchten, was es tut;)

Beachten Sie, dass alle Ihrer Build-Konfigurationen mit diesem Befehl geändert werden. Die Zeile ENABLE_BITCODE = YES; erschien 6 Mal in meinem project.pbxproj.

Jetzt können meine Build-Schritte vollständig automatisiert werden, da fastlane sich um den Rest kümmert!

4
GabLeRoux

Wenn Sie das Flag enable_bitcode nicht finden. Klicken Sie in der oberen Symbolleiste neben der Suchleiste auf die Registerkarte "Alle"  enter image description here

3
haroon jamil

versuchen Sie diesen Befehl im Terminal, wenn Sie die BITCODE-Einstellungen nicht innerhalb des Projekts ändern können.

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

0
booklynios