Xcode -Как добавить закрытый ключ в сертификат разработки, если он создан с помощью кнопки отзыва - PullRequest
0 голосов
/ 31 октября 2019

По ошибке я нажал кнопку Revoke.:

enter image description here

Я перешел на developer.apple> Certificates Я скачал новый Development Certificate, созданный нажатием кнопки Revoke. Впоследствии одна из ошибок, которые я получил, это

enter image description here

Во второй части ошибки говорится, что сертификат нуждается в private key (оранжевым цветом).

В Xcode> Preferences> Accounts> App ID> Team> plus sign говорится, что срок действия Development Certificate равен 10/30/20, 12:04 AM:

enter image description here

Когда я смотрю в цепочке для ключей есть сертификат с этой датой истечения срока действия, но слева от него нет стрелки для переключения вложенного закрытого ключа:

enter image description here

Как добавить закрытый ключ в сертификат разработки, созданный с помощью кнопки «Отменить»?

Кстати, сертификат распространениясозданный после нажатия кнопки Revoke, к нему был прикреплен закрытый ключ.

1 Ответ

0 голосов
/ 14 ноября 2019

Когда вы нажимаете кнопку Revoke, вы получаете новый iPhone Distribution certificate и новый iPhone Developer certificate. Вы можете просмотреть эти сертификаты на портале для разработчиков по адресу developer.apple> certificates. Эти сертификаты также будут в вашей цепочке для ключей. Вы используете сертификат даты истечения срока действия , чтобы увидеть, какие сертификаты чему соответствуют.

Проблема с нажатием кнопки «Отменить» заключается в том, что вы получите iPhone Distribution certificate с private key, но насколькоiPhone Developer certificate it не будет иметь закрытый ключ.

Если вы посмотрите в свою цепочку для ключей, вы увидите эту картинку ниже. Обратите внимание, что у iPhone Distribution certificate есть серая стрелка рядом с ней, но у iPhone Developer certificate нет:

enter image description here

Это приведет к следующим 2 ошибкам:

enter image description here

Вызывает цикл, когда вы снова нажимаете кнопку Revoke, и вы получаете те же 2 ошибки. Я не уверен, почему Apple так поступила, но кто-то определенно допустил ошибку.

Когда вы перейдете на Keychain> login> My Certificates, вы увидите только сертификаты, которые имеют закрытый ключ (серая стрелка указывает на это). Так как iPhone Developer certificate от нажатия кнопки Revoke не имеет ключа, его там не будет. Согласно этому вам нужен этот ключ, в противном случае вы получите ошибки:

Если ваши сертификаты разработчика и распространения iOS не отображаются в «Мои сертификаты» , тогда они неправильно настроены для использования на вашем Mac. Обратите внимание, что «Сертификаты» - это хранилище всех сертификатов, которые имеет ваш Mac, тогда как «Мои сертификаты» - это подмножество сертификатов , действительных для вашего Mac, чтобы фактически использовать - сертификата, отображаемого в "Сертификаты" * только 1054 * недостаточно.

Если сертификат отсутствует в Моих сертификатах , то это, скорее всего, потому что вынет правильного ключа для этого сертификата также на этом Mac. Вам нужно будет найти закрытый ключ, созданный для этого сертификата (т. Е. На исходном Mac, который запросил сертификат или на сервере резервного копирования).

Пока они появляются в Моих сертификатах, ониесть ключ .

Поскольку iPhone Developer certificate не появится в Мои сертификаты , исправление после нажатия кнопки Revoke, удалите iPhone Developer certificate что он генерируется из ОБА портала разработчика на developer.apple> certificates И keychain. ОЧЕНЬ важно, чтобы вы удалили его из цепочки для ключей! Используйте срок действия , чтобы найти его. Пожалуйста, оставьте iPhone Distribution Certificate, потому что это должно работать нормально и иметь ключ (обозначен серой стрелкой).

После того, как он удалит из обоих ОБА мест, вы можетевручную создайте developer certificate самостоятельно, следуя этим указаниям :

Создайте сертификат подписи кода вручную

1 - откройте Keychain Access.

2- В верхнем левом углу рядом со знаком Apple выберите Keychain Access> Certificate Assistant> Request a Certificate From a Certificate Authority...

3- Введите Адрес электронной почты пользователя (просто используйте свой) и Общее имя (просто используйте свое имя) и выберите Сохранено на диск . Я выбрал Let me specify key pair information (может быть, это и не нужно), но на следующем экране просто используйте Key Size: 2048 bits и algorithm: RSA. Нажмите «Продолжить» и сохраните созданный файл certSigningRequest на рабочем столе.

4- Перейдите на https://developer.apple.com и войдите в свою учетную запись.

5- Выберите сертификаты, идентификаторы и профилииз левой боковой панели.

6- Перейдите в раздел Сертификаты и нажмите кнопку + в правом верхнем углу.

7- Выберите iOS App Development и нажмите Продолжить.

8. На следующей странице вы видите инструкции по созданию файла certSigningRequest. Нажмите «Продолжить».

9- Загрузите созданный certSigningRequest (с 3-го шага, сохраненный на рабочий стол) в форму и нажмите «Продолжить». Он создаст для вас сертификат подписи кода.

10 - Загрузите сертификат и дважды щелкните, чтобы установить его. После установки он будет добавлен в ваше приложение Keychain Access. Предполагая, что он сохраняется в вашей папке загрузки, вы можете просто зайти туда и дважды щелкнуть по ней.

После того, как вы выполните эти шаги, обе ошибки должны исчезнуть.

Если вы продолжаете иметь ошибки, посмотрите насертификаты на портале developer.apple> certificates и keychain> My Certificates. Если что-то есть на портале, но отсутствует в My Certificates, вам нужно найти его для доступа к цепочке для ключей (посмотрите цепочку для ключей> Сертификаты ), удалите его и удалите с портала.

Мне потребовалось некоторое время, чтобы понять это, но срок действия является ключом к обнаружению испорченных сертификатов.

...