Ich habe eine OS X-App, die über den Mac App Store vertrieben und kürzlich auf Xcode 4.6.3 aktualisiert wurde.
Wenn ich jetzt meinen regulären Build ausführe, erhalte ich:
Command /usr/bin/codesign failed with exit code 1:
/Users/Craig/Library/Developer/Xcode/DerivedData/Mac-dxcgahgplwpbjedqnembegifbowj/Build/Products/Debug/MyApp.app: code object is not signed at all
In subcomponent: /Users/Craig/Library/Developer/Xcode/DerivedData/Mac-dxcgahgplwpbjedqnembegifbowj/Build/Products/Debug/MyApp.app/Contents/Frameworks/DropboxOSX.framework
Command /usr/bin/codesign failed with exit code 1
Ich kann anscheinend keine anderen Änderungen in meinem Projekt erkennen, daher kann ich nicht sagen, ob es sich um ein Problem im Zusammenhang mit dem 4.6.3-Update oder um etwas anderes handelt.
Ich habe versucht, Xcode neu zu starten, einen sauberen Build auszuführen und den Build-Ordner zu bereinigen.
xcode
macos
dropbox
code-signing
mac-app-store
Craig Otis
quelle
quelle
Antworten:
Ich glaube, ich habe das herausgefunden. Ich habe Xcode 4.6.3 unter OS X Mavericks ausgeführt, unter dem Eindruck, dass alle Build-spezifischen Tools in der Xcode-Anwendung gebündelt waren.
Aber es scheint
codesign
in/usr/bin
. Ich bin mir nicht sicher, ob es von einem der Xcode-Installer bereitgestellt wird oder mit einer Vanilla-Systeminstallation geliefert wird. Aber als ich dieman
Seitecodesign
durchgelesen habe, habe ich diese raffinierte Option gefunden:--deep When signing a bundle, specifies that nested code content such as helpers, frameworks, and plug-ins, should be recursively signed in turn. Beware that all signing options you specify will apply, in turn, to such nested content. When verifying a bundle, specifies that any nested code content will be recursively verified as to its full content. By default, verification of nested content is limited to a shallow investigation that may not detect changes to the nested code. When displaying a signature, specifies that a list of directly nested code should be written to the display output. This lists only code directly nested within the subject; anything nested indirectly will require recursive application of the codesign command.
Und dann habe ich diesen Beitrag ( https://alpha.app.net/isaiah/post/6774960 ) von vor zwei Wochen (~ Juni 2013) gefunden, in dem erwähnt wird (wenn auch aus zweiter Hand):
Durch manuelles erneutes Ausführen des
codesign
Befehls, den Xcode normalerweise ausführt, während das--deep
Flag am Ende hinzugefügt wird , wird die Anwendung ordnungsgemäß signiert.Ich bin mir noch nicht sicher, welche Auswirkungen diese manuelle Signatur hat oder ob ich den Xcode-Build optimieren kann, um das
--deep
Flag automatisch hinzuzufügen , aber dies scheint das zugrunde liegende Problem zu sein. (codesign
Signiert Ihr App-Bundle nicht mehr automatisch tief.)quelle
--deep
und der Build wird jetzt erfolgreich ausgeführt. Wir werden sehen, ob dies über den Mac App Store geht.codesign
, um genau zu verstehen, was sich geändert hat. Ich weiß nur, dass sich zwischen 10.8 und 10.9 (oder vielleicht Xcode 4 auf Xcode 5, ich habe beide gleichzeitig aktualisiert) das Verhalten geändert hat , und dies hat für mich funktioniert, um meine Apps erfolgreich einzureichen.Wie in anderen Antworten hervorgehoben, ändert sich die Funktionsweise der Codesignatur. Wenn Sie einen der Xcode 5-DPs installiert haben, werden die neuen Tools auch dann verwendet, wenn Sie Xcode 4.6.X verwenden.
Alles, was Sie zu diesem Zeitpunkt (in Xcode 4.6.X) tun müssen, ist, das oben vorgeschlagene Flag --deep zu verwenden und es in Ihre Codesignaturflags (Ziel, Build-Einstellungen) einzufügen (siehe Abbildung unten).
quelle
Für mich wurde dieses Problem verursacht, nachdem ich einen Ordner mit dem Namen "Ressourcen" in mein Projekt gezogen habe. Nachdem der Name in einen anderen Namen geändert wurde (z. B. "resourcessss"), verschwand der Fehler.
quelle
Resource
Ordner aus dem Anwendungspaket entfernen und Xcode.app neu starten.Resources
(wie ich) einfügen MÜSSEN, müssen Sie beim Hinzufügen zum Projekt lediglichCreate Groups
anstelle von auswählen,Create Folder References
und dieser Fehler tritt nicht auf. (Stellen Sie einfach sicher, dass Ihre Zielmitgliedschaften für diese Dateien nachher noch festgelegt sind)Ich hatte das gleiche Problem, aber die Antwort war einfach: Die Code-Signatur-Identität in meiner App wurde auf "-" gesetzt. Durch einfaches Setzen auf "Nicht-Code-Signieren" wurde ich behoben.
"-" scheint die Standardeinstellung zu sein, wenn Sie eine Reihe von Aktionen ausführen, obwohl ich Ihnen nicht sagen kann, um welche es sich handelt.
quelle
Dies könnte jemandem helfen:
quelle
Für mich war es ein beschädigtes Framework PaddleMAs, das: 1. Ich habe es aus meiner Cocoapods-Datei entfernt 2. Ran
pod install
3. Mein Xcode neu gestartetund es löste das Problem. Aus irgendeinem Grund verhindert ein beschädigtes Framework, dass es signiert wird. Leider zeigt XCode diesen Fehler nicht wirklich deutlich an und gibt Ihnen einen guten Lösungsvorschlag. Habe einen Fehler bei Apple zur Behebung ausgelöst.
quelle