Codesign zurückgegeben 1 (Objekt-ifile-format ungültig oder ungeeignet) bug

Arbeite ich mit Xcode 4.1 build 4B110f versucht, meine iOS-app bereit für den upload. Es übergibt den Produkt - |Archiv-Schritt mit keine Fehler, Fragen, zweimal für die Erlaubnis, etwas Unterschreiben. Aber wenn ich versuche, eine Validierung der archive die vom Veranstalter, es schlägt fehl:

### Codesigning '/Users/uqrchern/Library/MobileDevice/Provisioning Profiles/70D2381D-3733-4F5D-88B2-4729572C2864.mobileprovision' with 'iPhone Distribution: Ron Chernich'
+ /usr/bin/codesign --force --preserve-metadata --sign iPhone Distribution: Ron Chernich --resource-rules=/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app/ResourceRules.plist --entitlements /var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/entitlements_plistrZ1Vwko6 /var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app
Program /usr/bin/codesign returned 1 : [/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app: replacing existing signature
/var/folders/ul/ula1AHKnGpqQ9ftDnUL-l++++TM/-Tmp-/rybczU3EBd/Payload/ABRA-D.app: object file format invalid or unsuitable
]
error: codesign failed with error 1

Habe ich mir angeschaut alle die ähnliche Probleme und Lösungen (von denen einige keinen Sinn machen, was auch immer, oder bei wirklich alten Versionen der tools). Keiner gemacht haben, den geringsten Unterschied.

Habe ich auch 3 mal überprüft, die überprüfen, ist mit der "Produktion" - Zertifikat, wie ist das codesign-Schritt erzeugt das Archiv. Ich habe gerade die Ausgabe oben in ein schell-script, so konnte ich versuchen, alle Zertifikate manuell: das gleiche Ergebnis jedes mal.

Vielleicht die .app-Datei signiert wird wirklich ungeeignet ist?

Übrigens codesign hat keine version-flag, aber die man-Seite ist datiert vom 1. Juni 2006. Die binary verfügt über eine Datei-Datum 20. Nov 2010.

UPDATE (Nächster Tag):

Forscht weiter das problem gefunden, eine obskure Referenz zu sagen, dass codesign muss die folgenden environment-var set:

CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

Mithilfe der Ausgabe einer fehlgeschlagenen Validierung laufen, habe ich ein shell-script, welches diese exportierte var kurz vor dem scheitern codesign --force-Schritt und viola! Der codesign funktioniert.

Aber nicht wirklich mir helfen, mein code für den upload. Gibt es eine Möglichkeit diese in das Skript ausführen, indem Sie die Organizer-Schaltfläche "Validieren"??

EIN WENIG SPÄTER NOCH, DIE LÖSUNG!!! :

Unter der Theorie gibt es ein script irgendwo erzeugt alle Befehle, die Sie ausführen, während ein Organizer Überprüfen... laufen, ich habe einige Graben mit grep und find. Das Skript existiert tatsächlich und es ist der name:

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

Es ist nur Perl und das Update ist das hinzufügen der gewünschten Umgebung var für das assoziative array %ENV Recht am Anfang, sagen wir in Zeile 72:

$ENV{CODESIGN_ALLOCATE} = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate';

Diese völlig behebt das problem. Ich habe keine Ahnung, wo all die anderen Poster, die auf der web, die denken, dass Sie es behoben, indem Kombinationen der Zertifikate löschen, Gebäude reinigen, Herunterfahren und Neustart von Xcode, etc, etc, kommen. Ich werde einfach ruhig behaupten, dass dieses Update bevorzugt die Wissenschaft über Aberglaube und funktioniert bei mir unter Xcode 4.1 Build 4B110f und seine damit verbundenen PackageApplication Skript läuft unter Snow Leopard 10.6.8 mit Perl 5.10.0

  • Meinen Abend gerettet, Mann! Ich vermute, dass es hat etwas zu tun mit der beta-Version von ios 5 (XCode 4.2) auf meinem Rechner. Haben Sie nur von XCode 4.1 auf Ihrem Rechner oder auch die 4.2?
  • Sie haben Recht, ich hatte die 4.2 beta installiert und vermute, dass die Wurzel des Problems, da ich nicht laufen die 4.2 deinstallieren Sie vor der Installation 4.1 (wenn ich twigged und habe es laufen, es konnte nicht finden einige Dinge, da würd ich umbenannt 4.2 Entwickler dir vor der Installation 4.1).
  • Danke!!! Sie haben mich gerettet, so viel Zeit und Schmerzen.
  • Ich bin so dankbar für Sie. Sie haben mich gerettet eine Menge Zeit.
InformationsquelleAutor RonC | 2011-09-15
Schreibe einen Kommentar