2013-02-14 9 views
39

Ich habe eine Reihe von .ipa-Dateien und ich habe ein Skript verwendet, um sie zurückzutreten.Wie kann ich feststellen, welches Profil/Signaturzertifikat zum Signieren von .ipa verwendet wurde?

Wie kann also das Provisioning-Profil/Signaturzertifikat überprüft werden, damit sie die richtigen Informationen verwenden?

Im Idealfall würde ich gerne in der Lage sein, jede .ipa-Datei zu nehmen und zu sagen, welches Provisioning-Profil/Signaturzertifikat verwendet wurde, um es zu signieren.

Hintergrundgeschichte: Unser Unternehmen Verteilungszertifikat abläuft und ich möchte unsere Sachen wieder unterschreiben. Es ist eine einfache Aufnahme für all die Dinge, die wir in Xcode gemacht und archiviert haben, aber für Drittanbieter, die Distributibles gemacht haben, kann ich das nicht tun. Ich möchte vermeiden, nach einer neu signierten .ipa-Datei zu fragen, weil eine neue .ipa könnte unbekannte Änderungen enthalten und Probleme einführen, und sie würden uns wahrscheinlich auch aufladen ... aber ich mache mir mehr Sorgen um das erste Problem.

Da sowohl unsere alten als auch unsere neuen Distributionszertifikate noch gültig sind (Sie erhalten eine 6-monatige Überlappung) muss ich bestätigen können, dass die neue verwendet wird, sonst würde ich wirklich albern aussehen, wenn die alte abläuft und die "Kündigung" "Script hat das eigentlich nicht gemacht.

Antwort

55

Provisioning Profiles hat eine UUID, die mit dem Terminal-Befehl zu sehen sind:

security cms -D -i (path_to_your_provisioning_profile)

Siehe den UUID Abschnitt der Befehlsausgabe wie:

<key>UUID</key> <string>A008C022-7B82-4E40-8B37-172763E1E3CC</string>

Xcode fügt das Provisioning-Profil verwendet, um die Anwendung innerhalb des .app Bündel zu unterzeichnen. Um es zu finden, benennen Sie Ihre .ipa in .zip um, dekomprimieren Sie sie mit Finder, finden Sie die .app Datei in/Payload. "Paketinhalt anzeigen" in der APP-Datei und suchen Sie das Bereitstellungsprofil mit dem Namen embedded.mobileprovision.

Dump seine Berechtigungen mit dem obigen Befehl und vergleichen Sie das mit den UUID in Ihren Profilen in Ihrem Xcode Organizer> Geräte Registerkarte> Provisioning Profil Abschnitt unter "Bibliothek". Sie können "Im Finder anzeigen" verwenden, um den Speicherort auf der Festplatte anzuzeigen.

+0

Das war ein Schmerz zu starten, um zu testen, aber ich habe ein Skript geschrieben, das ein .ipa den Namen so der Provisioning-Profil und überprüfen Sie das Ablaufdatum zieht nimmt ich in der Lage sein werde dies für eine schnellere Tests zu automatisieren. Also für mich ... wird das eine bessere Lösung sein. – DBD

+0

Das Kommandozeilen gibt Ausgabe: „Sicherheit: failed Daten Decoder hinzufügen: UNKNOWN (-8183 (d) Bus-Fehler: 10“. – Adam

+0

Adam - stellen Sie sicher, dass Sie embedded.mobileprovision entschlüsseln und nicht die IPV selbst – BuvinJ

4

Ich konnte erfolgreich mit dem folgenden Prozess testen.

  1. Original-.ipa auf dem Gerät installieren.
  2. Zum Einstellungen-> Allgemein-> Profile (alte Provisioning-Profil sehen)
  3. löschen App und alte Profil von Gerät
  4. App resignieren.
  5. installieren neu signiert App auf dem Gerät
  6. Go> Einstellungen- Allgemein-> Profilen (neues Provisioning-Profil sehen)

Dies scheint eine kugelsichere Art und Weise, um das Provisioning-Profil zu bestätigen wurden aktualisiert und da das Profil nur das 1 Signaturzertifikat enthält ... müssen wir mit dem neuen Zertifikat signiert sein.

(aber ich will noch einen besseren Weg finden)

13

Basierend auf Bobjt Antwort, habe ich IPCU die Details des Profils zu erhalten:

  1. Benennen Sie Ihre .ipa in
  2. Dekomprimieren es mit Finder
  3. Finden Sie die .app-Datei in .zip/Nutzlast.
  4. "Paketinhalt anzeigen" in der APP-Datei und suchen Sie das Bereitstellungsprofil mit dem Namen embedded.mobileprovision.

  5. Ziehen Sie die Datei in mobileprovisioning iPhone Configuration Utility

IPCU zeigt den Name/Verfallsdatum usw. des Profils.

+0

Wenn ich dieses Tool nicht täusche nicht mit iOS funktioniert> = 8 – gnichola

+0

@gnichola Sie nicht brauchen, ein iPad verbinden/iPhone diese Schritte zu folgen, so sollte die iOS-Version irrelevant sein. – HaemEternal

+0

Ich denke, dass mein Kommentar klarer sein könnte, wenn Sie das Werkzeug haben, das Sie verwenden könnten, war mein Problem, dass das Tool für eine ältere Betriebssystemversion nicht mehr verfügbar war oder zumindest, als ich danach suchte Ich konnte es nicht finden. – gnichola

4

Ich endete mit einer Mischung aus Bobjt und HaemEternal Lösungen Vorschläge.

  1. Archiv finden.
  2. Packungsinhalt anzeigen.
  3. Kopieren .app-Datei aus
  4. Zeigen Sie den Paketinhalt der APP-Datei an.
  5. Kopieren Sie die Datei embedded.mobileprovision.
  6. Run „Sicherheit cms -D -i (path_to_your_provisioning_profile)“
  7. Finden Sie die UUID-Nummer aus dem Ergebnis der von Anruf in Schritt 6.
  8. Öffnen iPhone-Konfigurationsprogramm und Blick auf die Profile, die zu finden, die hat die gleiche UUID-Nummer.
24

spät zur Party ....

Aber dieses Tool spart mir Zeit: nomad/shenzhen

$ ipa info /path/to/app.ipa 

+-----------------------------+----------------------------------------------------------+ 
| ApplicationIdentifierPrefix | DJ73OPSO53            | 
| CreationDate    | 2014-03-26T02:53:00+00:00        | 
| Entitlements    | application-identifier: DJ73OPSO53.com.nomad.shenzhen | 
|        | aps-environment: production        | 
|        | get-task-allow: false         | 
|        | keychain-access-groups: ["DJ73OPSO53.*"]     | 
| CreationDate    | 2017-03-26T02:53:00+00:00        | 
| Name      | Shenzhen             | 
| TeamIdentifier    | S6ZYP4L6TY            | 
| TimeToLive     | 172              | 
| UUID      | P7602NR3-4D34-441N-B6C9-R79395PN1OO3      | 
| Version      | 1              | 
+-----------------------------+----------------------------------------------------------+ 
13

Check this: tool

Tapping Platz auf einer IPA-Datei oder Provisioning Profil zeigt Details

enter image description here

Verwandte Themen