Правильный способ продления распространения сертификата для iOS

303

Срок действия моего дистрибутивного сертификата истекает 7 июня вместе со всеми файлами инициализации. Как мне правильно продлить его? Должен ли я отозвать его сейчас и запросить новый? Если я сделаю это, чем все мои живые приложения будут удалены?

user1413558
источник
7
По какой-то причине, не использовав эту учетную запись в течение многих лет, я получил уведомление об этом ответе. Я не умер (пока). Я также хотел бы поблагодарить всех на StackOverflow за эти годы за помощь мне. Я написал этот вопрос, когда мне было 14 (сейчас 21). С тех пор я продолжаю делать приложения для iOS и скоро начну работать в Apple на полную ставку (моя мечта, насколько я помню). Еще раз спасибо всем, кто помог по пути!
user1413558
отличная история! да проходят годы! Вы даже не представляете, как программирование было сделано до онлайн-контроля качества. ура
Толстяк
@ Толстяк Почему предупреждение? Небольшие изменения пользовательского интерфейса на страницах Apple, принятый ответ по-прежнему правильный. Не все автоматически становится неправильным только потому, что оно старое.
Тео
Привет @ Theo, я думаю, что было долгое обсуждение (сейчас удалено), поэтому мой комментарий (я только что удалил его!) не имеет никакого особого смысла, спасибо за указание. Обратите внимание, что в этом конкретном случае ответ Ticked 5-летней давности содержит неверную информацию, как, например, объясняет SLBarth.
Толстяк

Ответы:

357

Ваши живые приложения не будут удалены. С магазином приложений ничего не случится.

По истечении срока их действия единственное, что будет затронуто, - это ваша способность подписывать код (и, следовательно, создавать новые сборки и предоставлять обновления).

Что касается вашего сертификата распространения, то по истечении срока его действия он просто исчезает из раздела «Сертификаты, идентификатор и профили» в Центре участников. Если вы хотите продлить его до истечения срока его действия, отмените текущий сертификат, и вы получите кнопку для запроса нового.

Что касается профиля обеспечения, не беспокойтесь об этом до истечения срока, просто продолжайте использовать его. Достаточно просто обновить его по истечении срока действия.

Душевное спокойствие заключается в том, что с вашим живым приложением в магазине ничего не случится.

Энди Обусек
источник
7
Спасибо, они истекли сегодня. Обновил их без проблем.
user1413558
30
Просто фу для других людей. Я отозвал сертификат, используемый для корпоративного распространения, и мне НЕ дали возможность продлить сертификат. Это только что ушло. Приложение было недоступно (не устанавливается), пока я не восстановил его с новым сертификатом.
складной салат
34
Эй, не аннулируйте свой внутренний сертификат !! Ваши собственные приложения не будут работать после перезагрузки / 3 дней, если вы не сможете обновить все свои приложения за этот период времени. Apple позволяет вам создавать 2 собственных приложения, чтобы они могли перекрывать друг друга, а затем обновлять с помощью них новые приложения. Не отменяйте это. Единственное, что вы можете отозвать - это App-Store Cert без остановки существующих приложений.
Mskw
13
Строго говоря, вы не можете обновить сертификаты, вы должны генерировать новые - см developer.apple.com/library/ios/#documentation/IDEs/Conceptual/...
mklement0
2
Обновленная ссылка на документы Apple по этому
qix
348

Когда срок действия вашего сертификата истекает, он просто исчезает из раздела «Сертификаты, идентификатор и профили» Центра участников. Нет кнопки «Обновить», которая позволяет вам обновить ваш сертификат. Вы можете отозвать сертификат и сгенерировать новый до истечения срока его действия . Или вы можете дождаться его истечения и исчезновения, а затем сгенерировать новый сертификат. В руководстве Apple по распространению приложений :

Замена просроченных сертификатов

Когда срок действия вашего сертификата разработки или распространения истекает, удалите его и запросите новый сертификат в XCode.

Когда срок действия вашего сертификата истекает или отзывается, любой профиль обеспечения, в котором использовался просроченный / отозванный сертификат, будет отражен как «Недействительный». Вы не можете создать и подписать любое приложение, используя эти недействительные профили обеспечения. Как вы можете себе представить, я бы предпочел отозвать и восстановить сертификат до истечения срока его действия.

Q: Если я сделаю это, все мои живые приложения будут закрыты?

Приложения, которые уже есть в App Store, продолжают нормально работать. Опять же, в руководстве Apple по распространению приложений :

Важное замечание: Повторное создание сертификатов разработки или распространения не влияет на приложения, которые вы отправили в магазин, и не влияет на вашу возможность их обновления.

Так…

В: Как мне правильно его продлить?

Как уже упоминалось выше, продление сертификатов не производится. Выполните следующие действия, чтобы отозвать и восстановить новый сертификат вместе с соответствующими профилями обеспечения. Инструкции были обновлены для Xcode 8.3 и Xcode 9.

Шаг 1: отозвать истекающий сертификат

Войдите в Member Center > Сертификаты, идентификаторы и профили, выберите истекающий сертификат. Запомните дату истечения срока действия сертификата и нажмите кнопку «Отменить».

Выберите срок действия сертификата и нажмите кнопку «Отменить».

Шаг 2: (Необязательно) Удалите отозванный сертификат из вашей цепочки для ключей

При желании, если вы не хотите, чтобы отозванный сертификат лежал в вашей системе, вы можете удалить их из своей системы. К сожалению, функция «Удалить сертификат» в XCode> «Установки»> «Аккаунты»> [Apple ID]> «Управление сертификатами»… кажется, всегда отключена, поэтому мы должны удалить их вручную, используя Keychain Access.app (/ Applications / Utilities / Keychain Access. приложение).

При желании удалите отозванный сертификат, используя Keychain Access.app

Фильтруйте по цепочке для ключей 'login' и категории 'Certificates'. Найдите сертификат, который вы только что отозвали на шаге 1.

В зависимости от сертификата, который вы только что отозвали, найдите «Mac» или «iPhone». Сертификаты распространения Mac App Store начинаются с «Сторонний разработчик Mac», а сертификаты распространения iOS App Store начинаются с «iPhone Distribution».

Вы можете найти отозванный сертификат, основываясь на имени команды, типе сертификата (Mac или iOS) и дате истечения срока действия сертификата, который вы указали на шаге 1.

Шаг 3: Запрос нового сертификата с использованием Xcode

Под Xcode> Предпочтения> Учетные записи> [Apple ID]> Управление сертификатами…, нажмите на кнопку «+» в левом нижнем углу и выберите тот же тип сертификата, который вы только что отозвали, чтобы позволить Xcode запросить новый для вас ,

Позвольте Xcode запросить новый сертификат для вас в Xcode> Предпочтения> Учетные записи> Apple ID> Управление сертификатами…

Шаг 4. Обновите свои профили обеспечения, чтобы использовать новый сертификат

После этого вернитесь в Центр участников > Сертификаты, идентификаторы и профили> Профили обеспечения> Все. Вы заметите, что любой профиль обеспечения, который использовал отозванный сертификат, теперь отображается как «Неверный».

Обратите внимание, что любой профиль обеспечения, который использовал отозванный сертификат, теперь отображается как «Неверный».

Нажмите на любой профиль, который сейчас «Неверный», нажмите «Изменить», затем выберите вновь созданный сертификат, затем нажмите «Создать». Повторяйте это до тех пор, пока все профили обеспечения не будут восстановлены с новым сертификатом.

Выберите только что созданный сертификат и нажмите «Создать».

Шаг 5: Используйте XCode для загрузки новых профилей обеспечения

Совет : перед тем, как вы загрузите новые профили с помощью XCode, вы можете удалить все существующие и, возможно, недействительные профили обеспечения с вашего Mac. Вы можете сделать это, удалив все профили из~/Library/MobileDevice/Provisioning Profiles

Вернитесь в XCode> «Настройки»> «Учетные записи»> [Apple ID], нажмите кнопку «Загрузить все профили», чтобы попросить XCode загрузить все профили обеспечения из вашей учетной записи разработчика.

Нажмите Download All Profiles for Xcode, чтобы загрузить все вновь созданные профили.

Junjie
источник
1
Привет, Джунджи, спасибо! Я сталкиваюсь с этой проблемой с Xcode 7. Что произойдет с приложениями, выпущенными с профилем обеспечения распространения AdHoc, если я отзову сертификат распространения? Они все еще живы? Спасибо
Frade
3
@Frade в соответствии с Apple: Сертификат распространения iOS (приложения для внутреннего использования, приложения для внутреннего использования). Пользователи больше не смогут запускать приложения, подписанные этим сертификатом. Вы должны распространять новую версию своего приложения, подписанную новым сертификатом. См developer.apple.com/support/certificates
Junjie
Я спрашивал об AdHoc, но, вероятно, такая же ситуация. Спасибо
Frade
3
@junjie Что произойдет, если приложение, опубликованное в магазине, имеет права на push-уведомления? Будет ли возможность отправлять push-уведомления после истечения срока действия сертификата?
Отавио
4
@ Otávio сертификаты распространения вашего приложения (с чем мы имеем дело в этом вопросе) отдельно от вашего сертификата APNS. сертификат APNS не является частью двоичного файла приложения. Вы можете отозвать / обновить сертификат APNS без обновления бинарного файла приложения. это ваш push-сервер, который требует сертификат APNS.
Junjie
21

По состоянию на январь 2020 года и Xcode 11.3.1 -

  • Открыть Xcode
  • Откройте настройки XCode (XCode-> Preferences или Cmd-,)
  • Нажмите на счета
  • Слева, нажмите на свой идентификатор разработчика
  • В правом нижнем углу нажмите на Управление сертификатами ...
  • В левом нижнем углу нажмите стрелку справа от + (плюс)
  • Выберите Apple Distribution из меню

Xcode автоматически создаст сертификат Apple Distribution, установит его в Keychain Access и обновит информацию о подписи Xcode

(Примечание: теперь предоставляется один сертификат Apple Distribution вместо предыдущего сертификата iOS Distribution и его эквивалентов.)

Лиан
источник
Любопытно: получил письмо от Apple, чтобы обновить сертификат распространения iOS. нет информации, что я должен вместо этого создать сертификат Apple Distribution.
ekkescorner
В электронном письме об этом не упоминается, @ekkescorner. Это в документах онлайн.
Линн
2
этот новый рабочий процесс для воссоздания сертификатов звучит слишком просто ;-)
спасибо еще
Спасибо @leanne за ответ. Должна быть опция истечения срока действия для древних нерелевантных ответов выше в SO.
RobMac
11

Очень просто было продлить свой сертификат. Зайдите в свой центр для разработчиков, зайдите в свой профиль Provisioning и посмотрите, какие сертификаты являются активными и неактивными, выберите неактивный сертификат и нажмите кнопку «Изменить», затем нажмите кнопку «Создать». Теперь ваш сертификат успешно продлен еще на 1 год. Спасибо

Shanmugasundharam
источник
@Shanmugasundharam, Должны ли мы выдвинуть новую версию в магазине приложений после создания профиля Provisioning.
Нирадж Пол
Для этого все еще требуется файл .csr, сгенерированный из xcode, по крайней мере, из того, что я нашел. От developer.apple.com/account я захожу в раздел «Сертификаты, идентификаторы и профили» -> «Профили». Я вижу ReleaseProfile и TestingProfile. Оба показывают «Неверно» в столбце «Истечение срока действия». Я нажимаю на ReleaseProfile, затем «Редактировать». В разделе «Сертификаты» указано «Нет доступных сертификатов» с помощью кнопки «Создать сертификат». Я нажимаю на это. Затем я выбираю «Распространение iOS» и «Продолжить». Теперь, чтобы создать его, мне нужно «Выбрать файл», то есть загрузить файл CSR, который, как я предполагаю, может быть сгенерирован только из xcode.
Brent212
Выяснилось, что я могу сгенерировать CSR просто запустив, в Linux: **** openssl req -nodes -newkey rsa: 2048 -keyout private_key.key -out cer_sign_request.csr **** Не могу поверить, что есть так много ответов чтобы "как создать сертификат csr", который требует XCode без упоминания об этом простом решении, которое не требует очистки моего старого Mac и запуска громоздкой IDE.
Brent212
@NirajPaul Ваше приложение будет по-прежнему работать для пользователей, которые загрузили его из магазина, и оно будет работать даже для вас, если вы загрузите его из магазина. Это влияет только на пользователей, которые помещают приложение на устройство с помощью профиля обеспечения (т. Е. Вы создали его и установили на своем устройстве из xCode). Пользователи прошлого, настоящего и будущего не заметят ничего другого. stackoverflow.com/a/7128502/3493877 Источник здесь
Shanmugasundharam
0

Это была действительно полезная тема, я следовал тем же шагам, что и @junjie, но для меня произошло нечто странное, ниже приведены шаги, которые я сделал.

  1. Зашел на портал разработчика и отозвал сертификат, срок действия которого истекал.
  2. Зашел на XCode6.4 и в настройках учетной записи сертификат все равно показывал действительный, я с ума сошел.
  3. Затем я открыл XCode7, там сертификат был показан с помощью кнопки «Сброс» вместо «Создать», и я нажал кнопку «Сброс» , и позже на портале я смог увидеть расширенный сертификат. Это то, что Apple говорит о кнопке сброса

Если XCode обнаруживает проблему с удостоверением подписи, он отображает соответствующее действие в настройках Аккаунтов. Если Xcode отображает кнопку «Создать», удостоверение подписи не существует ни в Центре участников, ни на вашем Mac. Если в Xcode отображается кнопка «Сброс», подпись не может использоваться на вашем Mac - например, отсутствует закрытый ключ. Если вы нажмете кнопку «Сброс», XCode аннулирует и запрашивает соответствующий сертификат.

  1. Я попытался создать AppStore ipa с этим, просто для тестирования, и он работал нормально, поэтому я спасен, но все еще не уверен, что случилось. Может быть, я настроил несколько учетных записей на моем Mac, не знаю.
anoop4real
источник