web-dev-qa-db-de.com

Bitcode-Signaturfehler in Xcode

Ich habe Xcode auf die letzte Version aktualisiert, und jetzt, wenn ich versuche, das Projekt zu kompilieren, erhalte ich die Fehlermeldung "Ungültige Bitcode-Signatur". Allerdings ist der Bitcode für mein Projekt deaktiviert. Wie kann ich es reparieren? Was muss ich ändern, um meinen Bitcode richtig zu signieren?

Meine Poddatei:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target 'MyProjectName' do

pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'

end

Ich habe schon nachgesehen, alles ist gut damit.

10

Ich bin mir nicht sicher, ob Sie die gleiche Situation bei mir haben. Ich habe dieses Problem nur, wenn ich mit einem iPhone-Gerät testen wollte. Es stellt sich heraus, dass die Debug-Konfiguration mit Build Active Architecture Only auf NO gesetzt ist. Nachdem ich auf JA eingestellt habe, kann ich mit meinem iPhone testen  enter image description here

31
Vincent

Dieser Fehler ist aufgetreten, aber er ist nur beim Erstellen eines iOS 10.3-iPads aufgetreten (trotz der Arbeit an einem iOS 10.3-iPhone und einem iOS 11.0-iPad und allen iOS 10.3- und 11.0-Simulatoren). Durch den schmerzhaften Prozess der Eliminierung (und das Erstellen eines neuen Projekts von Grund auf) stellte ich fest, dass meine Cocoapods nicht fehlerhaft waren, noch waren meine Code-Signing-Einstellungen, meine AppExtension oder meine Tests noch meine "Nur für aktive Architektur". Einstellungen oder Build-Einstellungen, die sich auf den Begriff "Bitcode" beziehen.

In meinem Setup hatte ich ein C++ Xcode-Projekt in meinem Haupt-Swift/iOS-Xcode-Projekt verschachtelt. Da es nie speziell für die Verwendung in iOS vorgesehen war, wurde das "iOS-Bereitstellungsziel" nie festgelegt (es wurde auf "Standard" belassen). Bei der Einstellung auf 10.3 funktionierte es ohne Beanstandung.

Nested C++ - App-Projekteinstellungen (setzen Sie das iOS-Implementierungsziel auf die niedrigste unterstützte iOS-Version):

 Nested C++ app's project settings

Nested C++ - App-Zieleinstellungen (als Referenz):

 Nested C++ app's target settings

7
Jamie Birch

Wenn Sie pod verwenden, überprüfen Sie bitte die Version aller Bibliotheken. Einige Bibliotheken werden in der neuen Version möglicherweise nicht unterstützt. Sie müssen die Pod-Dateien für diese Bibliothek aktualisieren.

3
Rajeev Singh

In meinem Fall habe ich versucht, ein Gerät mit einer iOS-Version zu erstellen, die niedriger als das Bereitstellungsziel ist.

3
awph

In meinem Fall trat ein Problem auf, weil ich eine statische Bibliothek eines Drittanbieters mit unterschiedlichen Dateien für jede Architektur verwendet habe

Ich habe das Problem behoben, indem Binärdateien ungültiger Architekturen entfernt wurden ..__ Stattdessen fügte ich eine multi-Arch FAT-Binärdatei für die statische Bibliothek eines Drittanbieters hinzu

Hoffnung hilft

2
accfews

Diese Art von Problem trat auf, als ich ein neues statisches Bibliotheksprojekt mit meinem Arbeitsbereich verknüpfte. Um das Problem zu lösen, habe ich versucht, sowohl die Build Active Architecture Only- als auch die Bitcode-Einstellungen der Bibliothek auf NO zu setzen, aber kein Glück. Dann stieß ich auf die Tatsache, dass das Implementierungsziel der Bibliothek auf 11.0 gesetzt wurde, da Xcode den neuesten Wert für alle neuen Projekte setzte. Nachdem die Einstellung auf 5.0 festgelegt wurde, wurde das Problem behoben.

2

Ich fand heraus, dass mein Problem mit der Verwendung von 'Modulen' lag.

Ich habe gerade Module deaktiviert (musste einige Header-Dateien aktualisieren), aber das hat mein Problem gelöst.

Module in den Einstellungen aktivieren

1
LowAmmo

Um dieses Problem zu beheben, empfehlen die meisten Antworten eine Problemumgehung, mit der Sie Ihren Xcode-ArbeitsbereichProjekt bereinigen, Xcode schließen, Ihren Derived Data-Ordner löschen (dieser Ordner wird standardmäßig im Stammverzeichnis Ihres Projekts gespeichert), und dann öffnen Sie Ihr Projekt schließlich erneut.

Die obigen Schritte funktionieren jedoch möglicherweise nicht für Sie. Dies ist ein Hinweis darauf, dass Ihre Projektstruktur fehlerhaft ist.

Bei der Veröffentlichung der Bitcode-Intermediär-Repräsentation Ihres Projekts mit iOS 9.0 wurde dies unter der Voraussetzung durchgeführt, dass Ihr gesamtes Projekt einschließlich Abhängigkeiten entweder völlig der Verwendung von Bitcode zustimmt oder nicht. Aus meiner Erfahrung heraus ist es wichtig, dass Sie alle Ihre Pods und Libraries/Frameworks durcharbeiten und sicherstellen, dass alle dieselbe Einstellung verwenden. entweder/- Ja oder Nein . Standardmäßig lautet diese Auswahl Ja .

Wenn eine einzelne Abhängigkeit nicht mit der beabsichtigten Bitcodeeinstellung übereinstimmt, kann dieser Fehler ausgegeben werden. 

Wenn Sie Ihre Abhängigkeiten und Ihr übergreifendes Projekt sorgfältig prüfen, ist es wichtig zu beachten, dass für beide die Projekt- und die Zieleinstellungen eine Use Bitcode-Einstellung vorhanden ist. Überprüfen Sie also unbedingt beide Perspektiven der Build-Einstellungen.

1
Mapsy

In meinem Fall verursachte das im Projekt enthaltene Widget den Bitcode-Fehler. 

Ich habe meine Pod-Datei davon geändert:

target "App" do
    pod 'A'
    pod 'B'
end

target "App Widget" do
    pod 'A'
end

zu diesem:

target "App" do
    pod 'A'
    pod 'B'

    target "App Widget" do
        pod 'A'
    end
end
1
Micah Benn

In meinem Fall entfernte die Lösung eine C++ - Bibliothek.

1
Oded Harth

Diese Lösung funktioniert für mich. Versuchen Sie zunächst, den gesamten Pod mit dem Terminalbefehl pod deintegrate zu entfernen, und installieren Sie dann den Pod mit dem Terminalbefehl pod install erneut.

0
Ashish Kanani

Ziele -> Build-Einstellungen -> Nur aktive Architektur erstellen

Debuggen -> JA Freigeben -> NEIN zu JA 

Das gleiche Problem habe ich nur beim Archivieren der App.

Wer kann mir den Grund nennen? Sie können alle Entwickler unterrichten. Es ist toll.

 enter image description here

0
jiexishede

In meinem Fall verwende ich Cordova Project . Beim Erstellen mit Xcode gab es das gleiche Problem und wurde durch Entfernen und Hinzufügen der IOS - Plattform behoben.

cordova platform remove ios

cordova platform add ios

Wenn Sie Kakaoschoten verwenden, führen Sie "Pod-Aktualisierung" durch

0
Kartik 123

Ich habe eine statische Bibliothek hinzugefügt. Ich habe eine fette Binärdatei derselben Bibliothek erstellt, die alle Architekturen enthält und in meinem Projekt enthalten ist. Dies hat mein Problem gelöst

0
sonali

Dies kann auch beim Erstellen des Simulators auftreten, wenn Sie ein Framework enthalten, das nur für ARM erstellt wurde (und ich gehe auch davon aus).

0
ion