Как узнать, какой сертификат/подпись был использован для подписания .ipa?
У меня есть куча файлов .ipa, и я использовал script, чтобы уйти в отставку.
Итак, как проверить сертификат подготовки/подпись сертификата, чтобы убедиться, что они используют правильную информацию?
В идеале я хотел бы получить любой файл .ipa и указать, какой сертификат профиля/подпись был использован для его подписания.
Backstory: Срок действия нашего сертификата распространения на предприятии истекает, и я хочу переписать наш материал. Это простой пример для всего, что мы создали и заархивировали в Xcode, но для сторонних поставщиков, которые делают дистрибутивы, я не могу этого сделать. Я хочу избежать запроса повторно подписанного файла .ipa, потому что новый .ipa может включать неизвестные изменения и вводить проблемы, и они, вероятно, тоже обвинят нас... но меня больше беспокоит первая проблема.
Поскольку наши старые и новые сертификаты распространения все еще действительны (вы получаете 6-месячное перекрытие), мне нужно иметь возможность подтвердить, что новый используется, иначе я выгляжу действительно глупо, когда старый истекает, и "уходящий в отставку", script на самом деле не выполнял эту работу.
Ответы
Ответ 1
Профили Provisioning имеют UUID, который можно увидеть с помощью команды Terminal:
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" на тех, которые показывают их местоположение на диске.
Ответ 2
Поздно к вечеринке....
Но этот инструмент сэкономит мне время: 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 |
+-----------------------------+----------------------------------------------------------+
Ответ 3
На основе ответа Bobjt я использовал IPCU для получения сведений о профиле:
IPCU показывает дату имени/срока действия и т.д. профиля.
Ответ 4
проверьте это: инструмент
Нажатие пробела в файле IPA или профиле подготовки покажет подробности
![введите описание изображения здесь]()
Ответ 5
Мне удалось успешно протестировать, используя следующий процесс.
- Установите оригинальный .ipa на устройство.
- Перейдите в Настройки- > Общие- > Профили (см. старый профиль подготовки)
- Удалить приложение и старый профиль с устройства
- Отменить приложение.
- Установить повторно подписанное приложение на устройство
- Перейдите в Настройки- > Общие- > Профили (см. новый профиль подготовки)
Кажется, это пуленепробиваемый способ подтвердить, что профиль обеспечения был обновлен, и поскольку в профиле есть только один сертификат подписи... тогда мы должны быть подписаны с новым сертификатом.
(но я все еще хочу найти лучший способ)
Ответ 6
В итоге я использовал смесь предложений решений Bobjt и HaemEternal.
- Найти архив.
- Показать содержимое пакета.
- Скопировать файл .app
- Показать содержимое пакета файла .app.
- Скопируйте файл embedded.mobileprovision.
- Запустить "security cms -D -i (path_to_your_provisioning_profile)"
- Найдите номер UUID из результата вызова на шаге 6.
- Откройте Iphone Configuration Utility и посмотрите на профили, чтобы найти ту, которая имеет тот же номер UUID.