2013-02-14 4 views
39

У меня есть куча файлов .ipa, и я использовал скрипт, чтобы уйти в отставку.Как узнать, какой сертификат/подпись был использован для подписания .ipa?

Итак, как можно проверить профиль подготовки/подпись сертификата, чтобы убедиться, что они используют правильную информацию?

В идеале, я хотел бы получить любой файл .ipa и указать, какой сертификат профиля/подпись был использован для его подписания.

Backstory: Срок действия нашего сертификата распространения на предприятии истекает, и я хочу перерегистрировать наши материалы. Это простой подход для всех вещей, которые мы создали и архивированных в Xcode, но для сторонних поставщиков, которые делают дистрибутивы, я не могу этого сделать. Я хочу избежать запроса повторно подписанного файла .ipa, потому что новый .ipa может включать неизвестные изменения и вводить проблемы, и они, вероятно, будут взимать плату с нас тоже ... но меня больше беспокоит первая проблема.

Поскольку наши старые и новые сертификаты распространения по-прежнему действительны (вы получаете 6-метровое перекрытие), мне нужно иметь возможность подтвердить, что новый используется, иначе я выгляжу действительно глупо, когда старый истекает, и «уходящий в отставку «сценарий на самом деле не выполнял эту работу.

ответ

55

Provisioning Профили имеют UUID, который можно увидеть с помощью терминала команду:

security cms -D -i (path_to_your_provisioning_profile)

См раздел UUID из вывода команды, как:

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

Xcode вставляет профиль обеспечения, используемого для подписи приложения в пределах .app пучка. Чтобы найти его, переименуйте свой .ipa в .zip, распакуйте его с помощью Finder, найдите файл .app в/Полезная нагрузка. «Показать содержимое пакета» в файле .app и найти профиль обеспечения с именем embedded.mobileprovision.

Внесите свои права, используя приведенную выше команду, и сравните это с UUID, найденным в ваших профилях, на вкладке Xcode Organizer> Devices> Provisioning Profile в разделе «Библиотека». Вы можете использовать «Показать в Finder» на тех, которые показывают их местоположение на диске.

+0

Это была боль, которую нужно было испытать, но я написал сценарий, который принимает .ipa, вытаскивает имя профиля подготовки и проверяет дату истечения срока действия, поэтому я смогу автоматизировать это для более быстрого тестирования. Так что для меня ... это будет лучшим решением. – DBD

+0

Эта команда дает вывод: «security: не удалось добавить данные в декодер: UNKNOWN (-8183 (d) Ошибка шины: 10» – Adam

+0

Адам - ​​убедитесь, что вы декодируете встроенное.mobileprovision, а не ipa. – BuvinJ

4

Я смог успешно протестировать, используя следующий процесс.

  1. Установите оригинал .ipa на устройство.
  2. Перейти к Settings-> Общие-> Профили (см старого профиля обеспечения)
  3. Удалить приложение и старый профиль из устройства
  4. Resign приложения.
  5. Установите повторно подписали приложение на устройстве
  6. Перейти к Settings-> Общие-> Профили (см нового профиля обеспечения)

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

(но я все еще хочу, чтобы найти лучший способ)

13

На основании ответа Bobjt, я использовал IPCU, чтобы получить подробную информацию о профиле:

  1. Переименуйте .ipa в .zip
  2. разархивации с Finder
  3. Найдите файл .app в/Полезная нагрузка.
  4. «Показать содержимое пакета» в файле .app и найти профиль обеспечения с именем embedded.mobileprovision.

  5. Перетащите файл mobileprovisioning в утилите iPhone

IPCU показывает имя/дата окончания срока действия ЭТС профиля.

+0

Если я не ошибаюсь, этот инструмент не работает с iOS> = 8 – gnichola

+0

@gnichola вам не нужно подключать iPad/iPhone, чтобы выполнить эти шаги, поэтому версия iOS должна быть неактуальной. – HaemEternal

+0

Я предполагаю, что мой комментарий мог бы быть более ясным, если у вас есть инструмент, который вы могли бы использовать, моя проблема заключалась в том, что, поскольку этот инструмент предназначался для более старой версии ОС, он больше не доступен или, по крайней мере, когда я его искал Я не мог найти его. – gnichola

4

В итоге я использовал смесь предложений решений Bobjt и HaemEternal.

  1. Найти архив.
  2. Показать содержимое упаковки.
  3. Скопируйте файл .app
  4. Показать содержимое пакета файла .app.
  5. Скопируйте файл встроенного.mobileprovision.
  6. Run «КМВ безопасности -D -i (path_to_your_provisioning_profile)»
  7. Найти номер UUID от исхода из вызова на этапе Utility 6.
  8. Открыть настройки Iphone и посмотреть на профили, чтобы найти тот, который имеет тот же номер UUID.
24

Поздно партии ....

Но этот инструмент экономит мне время: 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

проверить это: tool

Касание пространство на файл МПА или предоставления профиль будет показан ниже

enter image description here

Смежные вопросы