Невозможно обновить профиль Ad Hoc до истечения срока его действия, поскольку ни один сертификат не соответствует идентификатору сертификата.

Срок действия моего специального профиля истекает через 14 дней. В органайзере есть кнопка «обновить» для моего специального профиля, но когда я нажимаю ее, я получаю...

В этой команде нет текущих сертификатов, соответствующих предоставленным идентификаторам сертификатов.

Профиль на портале подготовки показывается активным, срок действия истекает 30 числа. Я также вижу сертификат распространения с той же датой истечения срока действия. Я должен предположить, что этот сертификат был тем, который использовался для подписи профиля. Есть ли способ исправить это без отзыва и создания нового специального профиля и сертификата?

Если мне придется начать сначала, как лучше всего продолжить, не испортив моих тестеров?

На эту тему есть много сообщений и ответов, но я не могу найти ни одного, посвященного этой конкретной проблеме с сертификатом, не соответствующим идентификатору сертификата профиля.


person user278859    schedule 17.04.2013    source источник
comment
может быть, вы добавили новый udid в свою учетную запись?   -  person viswateja    schedule 17.04.2013
comment
Да, после создания специального профиля и сертификата было добавлено несколько новых UDID. Как и почему это влияет на вещи, и могу ли я что-нибудь сделать, чтобы исправить ситуацию?   -  person user278859    schedule 17.04.2013


Ответы (1)


Профили Ad-Hoc Provisioning состоят из трех основных элементов:

  • Ровно 1 AppID
  • Открытый ключ вашего сертификата распространения
  • Один или несколько идентификаторов зарегистрированных тестовых устройств

Когда вы впервые сгенерировали этот профиль обеспечения (около года назад, если срок действия вашего текущего скоро истечет!), вы указали ему использовать ваш текущий сертификат распространения при создании этого профиля обеспечения — дата истечения срока действия результирующего специального профиля установлена ​​на соответствовать истечению срока действия сертификата распространения, поскольку вы не можете запустить приложение, подписанное с просроченным сертификатом (в сторону: это не обязательно применимо к сценариям с джейлбрейком...)

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

Вместо этого, эти последние две недели — это ваша возможность проявить инициативу и перевести своих пользователей на новую сборку с новым сертификатом и профилем подготовки. С моими собственными тестировщиками я рассматриваю последние несколько недель моего текущего Сертификата распространения как окно миграции, чтобы переключать сборки и заставлять своих тестировщиков загружать и устанавливать последнюю тестовую сборку, чтобы они могли продолжить свое тестирование. Хорошая новость заключается в том, что вы заметили, что срок действия ваших сертификатов истекает, и у вас более чем достаточно времени, чтобы исправить ситуацию и перевести своих тестировщиков — некоторым не так повезло, и им приходится играть в догонялки после истечения срока действия, и тестировщики кричат ​​о сбое вашего приложения. / больше не запускается ... определенно нежелательный результат для любого разработчика, особенно если вы работаете в одиночку и должны самостоятельно координировать взаимодействие между разработчиками и бета-тестерами.

Итак, что мне делать?

На высоком уровне выполнение миграции почти идентично настройке этого специального профиля в первый раз — для этого требуется просто очистить старые данные из вашей цепочки для ключей и профилей подготовки, а также отправить несколько тестовых электронных писем, поощряющих вашу команду обновить, как только вы сделаете новую сборку доступной для них. На высоком уровне этот процесс выглядит так:

  1. Отзовите свой существующий Сертификат распространения и повторно выпустите новый Сертификат распространения.
  2. Удалите существующий сертификат распространения из вашей цепочки для ключей и установите новый.
  3. Обновите и установите теперь «недействительный» профиль Ad-Hoc, чтобы использовать только что созданный сертификат распространения.
  4. При необходимости обновите настройки сборки подписи кода.
  5. Создавайте и выпускайте свою специальную сборку для тестировщиков.

Подождите. Не повлияет ли отзыв существующего сертификата на работу моих тестировщиков?

Нет, ни капельки! Ваши существующие сборки Ad-Hoc будут продолжать отлично работать до истечения срока действия, потому что они содержат всю информацию, необходимую для проверки подписи кода, прямо внутри сборки Ad-Hoc, которую вы им уже отправили. Однако по истечении срока действия сертификата ничего не запустится, и в ваших руках будут кричащие тестеры.

Я собираюсь предположить, что вы используете Индивидуальную учетную запись, поэтому сертификаты будут отображаться в формате «Разработчик iPhone: Имя Фамилия» и «Распространение iPhone: Имя Фамилия». Если вы используете учетную запись компании, формат будет немного отличаться. Я также предполагаю, что у вас есть только одна учетная запись; если вы зарегистрированы в нескольких учетных записях разработчика, будьте особенно осторожны при поиске и удалении существующих сертификатов и профилей из цепочки для ключей, так как может быть несколько похожих записей.

Для начала выйдите из Xcode, а затем перейдите на страницу developer.apple.com/ios и войдите в область «Сертификаты, идентификаторы и профили». Ранее он назывался «Центр снабжения».

Отзыв и повторный выпуск сертификата распространения

  1. Перейдите в область сертификатов распространения.
  2. Найдите сертификат распространения, срок действия которого скоро истечет, и отзовите его. Скорее всего, вы столкнетесь с сообщением о том, что отзыв этого сертификата сделает недействительными все связанные профили обеспечения — это вполне ожидаемо и нормально. На самом деле, это именно то, что мы хотим, чтобы вы могли получать обновления!
  3. Нажмите кнопку «Добавить» в правом верхнем углу и выполните шаги, чтобы создать новый сертификат распространения «App Store и Ad Hoc». Загрузите файл на свой компьютер, но пока не устанавливайте его — сначала мы должны очистить старый сертификат с вашего компьютера для разработки.

Удаление отозванного сертификата и установка нового сертификата

  1. Откройте Keychain Access и найдите «Распространение iPhone».
  2. Удалите все синие сертификаты, соответствующие «распространению iPhone». На значке сертификата также может быть красный значок «X», указывающий на то, что срок его действия истек или он отозван. Они могут быть очищены, а также они больше не используются.
  3. Дважды щелкните только что загруженный сертификат и установите его.

Изменить профили специальной подготовки

  1. Перейдите в раздел «Профили подготовки к распространению» и найдите свой профиль Ad-Hoc.
  2. При необходимости отредактируйте этот профиль, обновив список тестовых устройств.
  3. Нажмите «Создать» и загрузите только что созданный профиль обеспечения. Если кнопка «Создать» отключена, убедитесь, что в имени профиля подготовки нет специальных символов и что вы выбрали хотя бы одно тестовое устройство.
  4. Перетащите только что загруженный профиль подготовки в Xcode. Любые старые версии профиля могут быть удалены из Организатора.

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

Опять же, вам повезло в том, что вы предпринимаете шаги для устранения этой проблемы, пока вы, тестировщики, все еще можете использовать свое приложение, и вам не нужно торопиться или спешить, чтобы сделать это. Не торопитесь и обязательно очистите старые сертификаты и профили подготовки с истекающим сроком действия, чтобы Xcode было проще понять, что вы хотите использовать новейший профиль.

person Bryan Musial    schedule 17.04.2013
comment
Брайан, какой фантастически хорошо написанный ответ! Спасибо Спасибо. - person user278859; 17.04.2013
comment
Брайан, просто хочу еще раз поблагодарить тебя. Я просто следовал вашим инструкциям и без проблем обновил свой профиль Ad Hoc. Благодаря вам, хорошо идти в течение следующего года. Джон - person user278859; 19.04.2013
comment
Добро пожаловать - рад слышать, что вы снова работаете. - person Bryan Musial; 19.04.2013
comment
Спасибо за подробный ответ! Это было очень полезно. - person R.S; 26.06.2013
comment
Выдающийся ответ. Один из лучших, что я читал на stackoverflow. - person uerceg; 03.02.2014
comment
@Bryan Я бы очень хотел, чтобы ты работал на Apple, потому что твой ответ гораздо понятнее, чем их собственная документация центра разработчиков. - person gregtczap; 26.08.2014
comment
Обновление: в последних версиях xcode (5+) способ включить новый специальный профиль подготовки в xcode — перейти в Xcode > Настройки... > Учетные записи > Просмотреть подробности... > Обновить (кнопка внизу слева) . - person gregtczap; 26.08.2014
comment
@Egg, с удовольствием; дайте мне знать, если у вас возникнут другие вопросы. - person Bryan Musial; 26.08.2014