2016-04-27 11 views
2

Ich habe eine .ipa-Datei, die ich zurückgeben muss. Ich habe versucht, es zu tun, wie auf der objc.io blog erklärt:Wie stelle ich die App mit den Berechtigungen zurück?

$ codesign -f -s 'iPhone Developer: Thomas Kollbach (7TPNXN7G6K)' Example.app 

jedoch dies nicht ausreicht. Wenn ich codesign mache, bekomme ich etwas wie dieses:

$ codesign -d --entitlements - Example.app/Example 
Executable=/Users/myuser/Payload/Example.app/Example 

Ich bekomme keine Berechtigungen aufgelistet.

Allerdings, wenn ich codesign -d --entitlements auf der ursprünglichen IPA-Datei aus xCode bekomme ich:

<plist version="1.0"> 
<dict> 
    <key>application-identifier</key> 
    <string>UFAYDHAUP.com.company.example</string> 
    <key>aps-environment</key> 
    <string>production</string> 
    <key>beta-reports-active</key> 
    <true/> 
    <key>com.apple.developer.team-identifier</key> 
    <string>UFAYDHAUP</string> 
    <key>get-task-allow</key> 
    <false/> 
    <key>keychain-access-groups</key> 
    <array> 
     <string>UFAYDHAUP.com.company.example</string> 
    </array> 
</dict> 
</plist> 

ich die Linie versucht, unter

codesign --entitlements Example.app/archived-expanded-entitlements.xcent -f -s 'iPhone Developer: Thomas Kollbach (7TPNXN7G6K)' Example.app 

Aber die folgenden Tasten sind nicht enthalten:

  • Beta-Berichte-aktiv
  • Get-Task-Al niedrig

Also wie soll ich das tun? Ich habe keine Berechtigungsdatei, in xCode 7 prüft man nur die Fähigkeiten. Und alles, was ich habe, ist Apple Push-Benachrichtigungen.

schließlich meine Anforderungen zu klären:

  1. ich App-ID nicht anders Provisioning-Profil oder Code-Signing-Identität im Vergleich zu was xCode Exporten ändern oder verwenden.
  2. Nur die Haupt-Programmdatei wird mit einem Tool geändert, weshalb ein Zurücksetzen erforderlich ist.

Antwort

2

Die Antwort ist eigentlich ganz offensichtlich in der Frage selbst. Die Ausgabe von:

$ codesign -d --entitlements - Example.app/Example 

Ist eigentlich eine vollständig gültige Berechtigungsdatei. So können Sie die Ausgabe von der ursprünglichen .ipa von xCode durch Schreiben exportiert speichern:

$ codesign -d --entitlements entitlements.xml Example.app/Example 

Dieser speichert die Berechtigungen in entitlements.xml, die Sie dann in einem Argument verwenden können, die .ipa Datei selbst zu unterschreiben:

codesign --entitlements entitlements.xml -f -s "iPhone Distribution: Company (UFAYDHAUP)" Payload/Example.app 

Natürlich muss "iPhone Distribution: Company (UFAYDHAUP)" durch die von Ihnen verwendete Signatur-ID ersetzt werden und Payload/Example.app ist der Pfad zu Ihrer App, der aus der .ipa-Datei entpackt wurde.