Beim Versuch, eine signierte .ipa-Datei, die von einem Xcode Bot erstellt wurde, zu TestFlight hochzuladen, habe ich den Standard
bekommen"Ungültige IPA: Die Werte für get-task-allow in embedded.mobileprovision und Ihre Binärdatei stimmen nicht überein. Sind Sie sicher, dass Sie die IPA mit demselben Zertifikatstyp erstellt haben, den Sie zum Kompilieren verwendet haben?"
Warnung. Das Problem ist, dass es für diese Anwendung keine Berechtigungsdatei gibt, und ich bin absolut sicher, dass die App mit dem entsprechenden Zertifikat signiert wird.
Wenn ich die .ipa entzippe und dann codesign -d -vvvv /path/to/The.app
starte, wird bestätigt, dass die App mit dem entsprechenden Verteilungszertifikat signiert wurde. Ich bin auch in der Lage, Craig Hockenberrys super-nützliches Quicklook-Plugin
Der super-komische / frustrierende Teil - wenn ich das .xcarchive herunterlade, das der Bot erstellt und dann mit einem Doppelklick signiert hat, dann geht es über den traditionellen Distribute ... Button innerhalb des Organizers, der ohne Test auf TestFlight hochlädt hitch.
Ich habe dieselbe Codesign-Prüfung für die Version durchgeführt, die erfolgreich hochgeladen wurde, und mit Ausnahme von CDHash und dem Datum, an dem die .ipa-Datei erstellt wurde, sind die Ergebnisse identisch.
Apples Dokumentation auf Codesignierung (nach unten scrollen zu "Code Directory Hash") scheint darauf hinzuweisen, dass die nicht übereinstimmenden Hashes bedeuten könnten, dass etwas falsch gelaufen ist:
Da sich das Codeverzeichnis ändert, wenn sich das Programm auf nichttriviale Weise ändert, kann dieser Test verwendet werden, um eine bestimmte Version eines Programms eindeutig zu identifizieren.
Jeder hat die leiseste Ahnung, was das sein könnte? Das Archiv, das ich benutze, um die .ipa zu erzeugen, die funktioniert, ist das heruntergeladene Produkt aus dem gleichen Build-Produktordner wie die .ipa, die nicht funktioniert. Wenn ich also die Dokumentation richtig verstanden habe, sollten die Hashes identisch sein. Oder missverstehe ich, dass die Dokumentation und etwas anderes schiefgelaufen ist?
Update 12/30: Eine andere Sache, die ich nach der Empfehlung eines Freundes bemerkte: Das Build-Produkt, das direkt vom Xcode Bot kommt, wird direkt auf meinem Handy installiert (welches ist auf dem Provisioning-Profil in Frage) durch den Xcode Organizer ohne Problem. Per href="https://twitter.com/testflightapp/status/417738098647511040"> habe ich per E-Mail die zu Testflug baut und sie sehen, wenn es irgendein Problem gibt sie auf ihre finden Ende.
Update 3, 1/2: Das Mysterium vertieft sich: Wenn ich das Build-Produkt direkt aus dem Xcode Bot nehme und es mit TestFlight's Desktop-App , es lädt gut, installiert auf meinem Telefon (das ist auf dem Provisioning-Profil) gut, und öffnet und funktioniert gut, nachdem es installiert ist. Ich habe dem Support-Team von TestFlight eine Reihe von Protokollen für ihre Anfrage geschickt, sie werden einen Blick darauf werfen, wie der wtfbbq läuft, und ich melde mich zurück, wenn ich von ihnen zurückmache.
Woo!
Am 24. Januar 2014 um 04.39 Uhr PST TestFlight Support schrieb:
Hallo Ellen,
Unser Team hat eine Lösung für dieses Problem bereitgestellt.
Bitte lassen Sie uns wissen, wenn Sie Probleme haben.
Ich habe heute Morgen bestätigt, dass meine Builds, die zuvor bei einem get-task-allow
-Ausgabe abgelehnt wurden, jetzt glücklich hochgeladen werden. Wenn Sie immer noch Probleme haben und alle oben genannten Schritte ausprobiert haben, empfehle ich Ihnen dringend, sich direkt an den TestFlight-Support zu wenden. Sie sind sehr hilfreich.
Ich habe dieses Problem kürzlich bekommen und baute über die Kommandozeile auf. Ich erkannte, dass der Befehl xcodebuild Bereitstellungsprofile und Signaturen willynilly auswählen. Wenn Sie dann den kompilierten Ordner mit xcrun und PackageApplication signiert haben, kann er ihn mit einem anderen sig- oder Bereitstellungsprofil signieren.
Um es zu beheben, geben Sie das Signatur- und Bereitstellungsprofil an, das xcodebuild verwenden soll.
Dies ist das, was es zuvor war, mit Ausnahme des nachfolgenden Aufrufs von xcrun zum Signieren und Packen der App. xcodebuild -sdk iphoneos -konfiguration Freigabe
Dies wurde benötigt xcodebuild -sdk iphoneos -konfiguration Freigabe CODE_SIGN_IDENTITY = PROVISIONING_PROFILE =
Ohne es können Sie alles vom Unterzeichnen der Identität zu nicht übereinstimmenden Signaturen erhalten, wenn es ein anderes Zertifikat vollständig findet.
Tags und Links xcode testflight ios-provisioning code-signing bots