Ошибка идентификатора продукта OS X: не удалось найти соответствующий идентификатор подписи
Я пытаюсь подписать пакет установщика OS X, используя утилиту командной строки productsign, но получаю ошибку.
productsign --sign "Developer ID Installer: XYZ" input.pkg output.pkg
productsign: error: Could not find appropriate signing identity for “Developer ID Installer: XYZ”.
Когда я открываю Keychain Access, я вижу сертификат, созданный на developer.apple.com и импортированный в брелок для входа в систему. Его общее имя соответствует моему параметру командной строки: "Developer ID Installer: XYZ". Есть ли способ отладить эту конкретную ошибку?
2 ответа
Проверьте наличие закрытого ключа в вашей цепочке для ключей. Для подписи вам нужен и ключ, и сертификат (вместе Apple называет это "личность").
Я была такая же проблема. Мой сертификат установщика не имел закрытого ключа. Вы можете проверить это, открыв брелок и поищите свой сертификат с именем вроде:
Установщик идентификатора разработчика: My Company (1258345791ZL)
Если у вас есть закрытый ключ, вы должны увидеть
Установщик идентификатора разработчика: Моя компания (1258345791ZL) (!) Закрытый ключ
Если вы не можете развернуть закрытый ключ под своим сертификатом, это означает, что он отсутствует.
Затем, чтобы это исправить, вы должны войти на developer.apple.com с вашим Apple ID и
1- попробуйте удалить и загрузить свой сертификат снова
2- если этого недостаточно, создайте новый с помощью следующих шагов
2a - нажмите на (+) или перейдите сюда:
https://developer.apple.com/account/mac/certificate/distribution/create
2b - укажите идентификатор производства / разработчика, затем нажмите "Продолжить"
2c - укажите "Установщик идентификатора разработчика"
2d - следуйте инструкции по созданию запроса сертификата с помощью связки ключей
2e - загрузите файл запроса сертификата в Apple developper
2f - скачать вновь созданный сертификат в вашу связку ключей.
2g - очистить все остальные сертификаты установщика, чтобы быть уверенным.
Et вуаля, вы можете подписать.
У меня была эта проблема, потому что у меня не было закрытых ключей. Лучшая практика, которая вам понадобитсяCertificateSigningRequest.certSigningRequest
это так же хорошо, как и закрытый ключ.
- войдите в developer.apple.com с идентификатором Apple ID, который является учетной записью разработчика.
- (вы можете использовать Xcode, но это слишком сложно, поэтому вы можете войти в свою учетную запись Apple Developer в браузере)
- вы можете просматривать существующие сертификаты и загружать их, но это принесет вам мало пользы, если у вас нет ключей для них
- Сообщите developer.apple.com, что вы хотите создать новый установщик идентификатора разработчика, вам нужно будет передать ему файл, объясняющий, как сделать на следующем шаге
- Запустите Keychain Access (эти инструкции в основном украдены из Apple)
Выберите "Связка ключей"> "Помощник по сертификатам"> "Запросить сертификат в центре сертификации".
В диалоговом окне Помощник по сертификации введите адрес электронной почты в поле Адрес электронной почты пользователя.
В поле Common Name введите имя ключа (например, Gita Kumar Dev Key).
Оставьте поле адреса электронной почты CA пустым.
Выберите "Сохранено на диск" и нажмите "Продолжить".
- Загрузите этот только что созданный файл CertificateSigningRequest.certSigningRequest обратно в Safari.
- Загрузите полученный файл developerID_installer.cer (теперь у вас есть подписанный идентификатор разработчика)
Дважды щелкните по нему, чтобы добавить его в цепочку ключей входа
наконец productsign --sign "Установщик идентификатора разработчика: ваше имя разработчика (1A2B3C4D5E)" ~/Desktop/example.pkg ~/Desktop/signed-example.pkg