Есть ли какая-либо команда, чтобы проверить, установлен ли сертификат распространения приложения iOS в цепочке ключей Mac. Идентификация сертификата по имени сертификата не помогает, поскольку учетная запись разработчика Apple может иметь более одного сертификата распространения, и эти сертификаты имеют одно и то же имя.
Команда для проверки наличия установленного сертификата распространения iOS
Ответы (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
А затем ищите идентификатор в скобках, который соответствует известному сертификату распространения (понятно, что у меня установлены только сертификаты разработки, но то же самое работает и с сертификатами распространения). Вы можете сделать еще один шаг и получить соответствующий сертификат из цепочки для ключей, а затем запросить идентификатор пользователя, организационную единицу или серийный номер для дополнительного уровня проверки.
Конечным результатом является то, что в настоящее время не существует интерфейса командной строки в одно касание, который можно было бы использовать для получения желаемого результата «пройдено/не пройдено». Однако вы можете захотеть взглянуть на инструменты с открытым исходным кодом для сценариев или фрагментов сценариев, которые вы могли бы использовать для создания собственного сценария.