Команда для проверки наличия установленного сертификата распространения iOS

Есть ли какая-либо команда, чтобы проверить, установлен ли сертификат распространения приложения iOS в цепочке ключей Mac. Идентификация сертификата по имени сертификата не помогает, поскольку учетная запись разработчика Apple может иметь более одного сертификата распространения, и эти сертификаты имеют одно и то же имя.


person saikamesh    schedule 02.11.2015    source источник
comment
поможет ли просто переустановить его из командной строки? stackoverflow.com/questions/23410890/   -  person nycynik    schedule 03.11.2015


Ответы (1)


К сожалению, для подписи кода требуется значительный объем информации о состоянии сборки вашего приложения (например, выпуск и отладка, действующий AppID, действующая конфигурация сборки удостоверения подписи, эффективная конфигурация профиля подготовки), а также информация о сертификате и ключе, которая хранится. в связке ключей текущего пользователя. В качестве прямого ответа на ваш вопрос: нет, не существует одноразового инструмента «checkMySigningIdentity», упакованного с Xcode, который может дать вам полностью автоматический двоичный ответ Да/Нет, который, как я подозреваю, вы ищете. Существует группа инструментов, доступных через security CLI, которые можно использовать для проверки удостоверений подписи или для запроса содержимого установленных сертификатов. Например, вы можете просмотреть содержимое вывода security find-identity -v -p codesigning:

bmusial@BKM-rMBP:~$ security find-identity -p codesigning -v
  1) A1B2C3D4E5F6198609D8AACF3F3041F05163A3EC "iPhone Developer: Bryan Musial (1234567890)"
  2) 8FDF5DCEC607FE669BB6C728CB51A1B2C3D4E5F6 "iPhone Developer: Bryan Musial (0987654321)"
     2 valid identities found

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

Конечным результатом является то, что в настоящее время не существует интерфейса командной строки в одно касание, который можно было бы использовать для получения желаемого результата «пройдено/не пройдено». Однако вы можете захотеть взглянуть на инструменты с открытым исходным кодом для сценариев или фрагментов сценариев, которые вы могли бы использовать для создания собственного сценария.

person Bryan Musial    schedule 08.11.2015
comment
Вероятно, также ничего не стоит то, что хотя справочная страница по безопасности указывает необязательное сопоставление строк с помощью '-s', протокол '-p codesigning' не поддерживает строковые фильтры. - person Bryan Musial; 08.11.2015