Как мне отказаться от приложения с правами?

У меня есть файл .ipa, и мне нужно отказаться от него. Я попытался сделать это, как описано в блоге objc.io :

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

Однако этого недостаточно. Когда я делаю кодовый знак, я получаю что-то вроде этого:

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

У меня нет перечисленных прав.

Однако, если я сделаю codesign -d --entitlements в исходном файле IPA из xCode, я получу:

<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>

Я пробовал строку ниже

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

Но в комплект не входят следующие ключи:

  • бета-отчеты-актив
  • получить-задачу-разрешить

Так как же мне это сделать? У меня нет файла с правами, в xCode 7 проверяются только возможности. И все, что у меня есть, это уведомления Apple Push.

Наконец, чтобы уточнить мои требования:

  1. Я не буду менять идентификатор приложения или использовать другой профиль подготовки или идентификатор подписи кода по сравнению с тем, что экспортирует xCode.
  2. Только основной исполняемый файл изменяется с помощью инструмента, поэтому требуется отставка.

person Erik Engheim    schedule 27.04.2016    source источник


Ответы (2)


Ответ на самом деле совершенно очевиден в самом вопросе. Выход из:

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

На самом деле это совершенно действующий файл прав. Таким образом, вы можете сохранить вывод из исходного .ipa, экспортированного из xCode, написав:

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

Это сохранит права в entitlements.xml, которые вы затем можете использовать в качестве аргумента, чтобы подписать файл .ipa самостоятельно:

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

Естественно, что «iPhone Distribution: Company (UFAYDHAUP)» необходимо заменить используемым вами идентификатором подписи, и Payload/Example.app будет путем к вашему приложению, которое было распаковано из файла .ipa.

person Erik Engheim    schedule 27.04.2016

Мне помогло:

--preserve-metadata=entitlements

Сохранение и восстановление прав больше не требуется.

person Nuzhdin Vladimir    schedule 12.12.2019
comment
Это помогло мне. codesign --preserve-metadata=entitlements --force --verbose --sign "Apple Development" MyApp.app - person user464014; 18.06.2020