Ошибка идентификатора продукта 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

Другие вопросы по тегам