Что делать, если истёк сертификат Apple Developer? Исправление публикации iOS в 2026 году

Что делать, если истёк сертификат Apple Developer? Исправление публикации iOS в 2026 году

Apple разделяет сертификаты по назначению: Apple Development используется для разработки, а Apple Distribution — для распространения сборок. В описании типов сертификатов Apple это различие задаёт первый шаг диагностики: выясните, какой актив истёк, прежде чем выпускать замену.

Симптом → Xcode не подписывает приложение или загрузка новой сборки останавливается на ошибке подписи.
Быстрое решение → проверьте состояние сертификата, Provisioning Profile, членства команды и фактического Mac, на котором выполняется сборка; обновляйте только подтверждённо неисправный актив и после этого повторите Archive.

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

Сначала различите истечение, отзыв и состояние команды

Общее сообщение о проблеме подписи не доказывает, что сертификат истёк. В цепочке участвуют разные сущности: сертификат и его закрытый ключ на Mac, профиль Provisioning Profile, идентификатор приложения, разрешения пользователя в команде и состояние членства. Ошибка появляется там, где перестаёт сходиться эта комбинация; исправление не того компонента может добавить новую переменную, но не устранить исходный сбой.

Наблюдение Что проверить первым Что это означает для следующего действия Оценка для диагностики
В аккаунте истёк Apple Development Назначение сборки, сертификат и профиль разработки Обновляйте актив для разработки и тестирования; не подменяйте его сертификатом распространения Высокая, если ошибка относится к тестовой подписи
Истёк Apple Distribution Подпись целевой сборки и профиль распространения Проверьте возможность выпустить новый действующий актив и обновить связанный профиль Высокая, если не удаётся подписать выпуск
Сертификат отображается как отозванный Кто и почему отозвал его, какие сборки и профили на него опираются Разбирайте это как отзыв, а не как обычное истечение срока Высокая: причина меняет границы восстановления
Ошибка говорит о недействительном или неподходящем профиле Срок, App ID, сертификат в профиле и возможности приложения Исправляйте профиль только после проверки соответствующего сертификата Высокая, если Xcode явно указывает на профиль
Статусы активов выглядят нормальными, но действие недоступно Членство команды, роль пользователя и доступ к подписи Не выпускайте сертификаты заново до проверки аккаунта и прав Высокая, если проблема не подтверждена в связке ключей

Таблица задаёт маршрут проверки, а не обещает, что одна строка всегда объясняет конкретный текст ошибки. Apple отдельно описывает отзыв сертификатов и управление полномочиями; проверьте официальное описание отзыва и связанных разрешений, прежде чем заменять действующий актив.

Важно. Истёкший сертификат и отозванный сертификат — разные состояния. Не отзывайте сертификат только потому, что Xcode показал ошибку подписи: сначала подтвердите его состояние и зависимые профили в аккаунте разработчика.

Для iOS не переносите сюда правила macOS Developer ID. Это отдельное назначение сертификата; при диагностике сборки для App Store сопоставляйте фактическую задачу с сертификатом разработки или распространения. А состояние членства проверяйте отдельно: Apple описывает продление членства и его влияние на доступ к программам разработчика. Если актив не истёк, а аккаунт или права недоступны, создание нового сертификата не исправит ограничение доступа.

Установите, какой именно выпуск заблокирован

Истечение Apple Development обычно затрагивает разработку и тестовую подпись, а истечение Apple Distribution — подготовку сборки для распространения. Эти сертификаты не взаимозаменяемы: выбирать нужно подпись, соответствующую конфигурации и назначению архива. Официальный обзор Apple поможет сопоставить тип сертификата с задачей.

Важна и граница последствий. Если проблема возникла при подготовке нового обновления, не делайте вывод, что уже опубликованная версия приложения автоматически перестала работать. Apple указывает, что сертификаты распространения применяются при подготовке дистрибутива; для нового выпуска нужна подходящая действующая подпись. Статус уже опубликованного приложения, состояние аккаунта и возможность отправить новую сборку — связанные, но не одинаковые вопросы.

Сертификат или статус Для чего используется Что проверить при сбое Чего не следует заключать автоматически
Apple Development Подпись для разработки и тестирования Связку ключей, профиль разработки и выбранную цель Что проблема обязательно связана с публикацией в App Store
Apple Distribution Подпись сборки для распространения Действующий сертификат, профиль распространения и параметры Archive Что уже опубликованная версия немедленно недействительна
Provisioning Profile Связывает приложение, подпись и разрешённые условия запуска или распространения Срок профиля, App ID, выбранный сертификат и возможности Что новый сертификат автоматически обновил старый профиль
Членство команды Даёт доступ к ресурсам и действиям программы разработчика Состояние учётной записи и роль пользователя Что повторный выпуск сертификата восстановит доступ

Уточните этап, на котором остановился процесс: локальная сборка, создание архива, экспорт или загрузка. Сохраните точный текст ошибки и журналы задачи. Если Archive проходит, но экспорт не создаётся, это не тот же симптом, что ошибка выбора подписи до архивирования. Разделяйте их: иначе вы можете пересоздать профиль, хотя реальная проблема — неверная конфигурация экспорта.

Выберите исправление по подтверждённой причине

Используйте условия ниже как развилку. Если наблюдение не подтверждает ветку, не переходите к следующей замене активов наугад.

  • Если в аккаунте подтверждено истечение нужного сертификата, выберите или создайте действующий сертификат соответствующего назначения, после чего проверьте профиль и среду, где подписывается сборка. Если истёк не тот тип сертификата, который выбран для текущей конфигурации, исправьте выбор подписи, а не заменяйте все сертификаты команды.
  • Если сертификат отозван, выясните причину и границы затронутых ресурсов. Следуйте процедуре Apple для отозванного сертификата и обновления зависимых профилей; не трактуйте отзыв как обычное наступление срока окончания.
  • Если сертификат действующий, но его нет в связке ключей сборочного Mac, восстановите доступ к соответствующей подписывающей идентичности и закройте связку ключей, если процесс выполняется неинтерактивно. Затем повторите подпись под той же учётной записью и в той же среде, где работает CI.
  • Если профиль истёк или не включает выбранный сертификат, обновите либо пересоздайте именно этот профиль. Сверьте App ID и необходимые приложению возможности, затем установите профиль в используемую сборочную среду.
  • Если состояние активов не объясняет сбой, а аккаунт сообщает о членстве или правах, остановите ротацию сертификатов. Проверьте роль участника команды и состояние членства; если проблема остаётся на стороне аккаунта или сервиса Apple, передайте подтверждённые данные ответственному администратору или в поддержку.

При выборе новой подписи проверьте, кто в команде имеет право управлять сертификатами и кто отвечает за их использование в CI. Apple отдельно описывает совместное управление сертификатами подписи команды. Это особенно важно, когда локальный аккаунт разработчика видит сертификат, а сборка выполняется от имени другого пользователя или учётной записи CI.

Проверьте профиль и закрытый ключ после обновления

Наличие сертификата в аккаунте не гарантирует, что подпись готова на Mac. Для подписывающей идентичности важен соответствующий закрытый ключ: публичная запись о сертификате сама по себе не заменяет ключ, которым выполняется подпись. В связке ключей проверьте, отображается ли сертификат как доступная идентичность с закрытым ключом, а не просто как сертификат без пары.

Provisioning Profile тоже требуется проверять отдельно. Убедитесь, что профиль не истёк, относится к нужному App ID и содержит сертификат, которым фактически подписывается сборка. Если приложение использует дополнительные возможности, проверьте, что они соответствуют профилю и настройкам приложения. В инструкции Apple по редактированию, загрузке и удалению профилей описаны действия для управления профилем; отдельное руководство по обновлению профилей поможет определить, когда его нужно обновить после изменений подписи.

Различайте автоматическое управление Xcode и ручное управление профилями. В первом случае Xcode может управлять активами в контексте выбранной команды и конфигурации. Во втором профилем распоряжается тот, кто его создаёт и распространяет. Не предполагайте, что загрузка сертификата в аккаунт обновила все локальные копии профиля или настройки каждого проекта. Проверьте фактически выбранный профиль для нужной конфигурации и назначения Archive.

Проверка на месте. Если Xcode показывает несколько вариантов подписи, зафиксируйте выбранную идентичность и профиль для той схемы, которую собирает CI. Успешная подпись другой схемы или на другом Mac не подтверждает исправление проблемного выпуска.

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

Доставьте исправление в удалённую среду

Когда локальная сборка проходит, а удалённая — нет, сравните не только файлы сертификатов, но и реальный контекст исполнения. Узнайте, какой Mac запускает задание, от имени какой учётной записи оно работает, какой Xcode и Scheme выбраны и где находится связка ключей процесса. Обновление на ноутбуке разработчика не синхронизирует автоматически закрытый ключ, профиль или настройки на сборочной машине.

Если используете fastlane match, проверьте, завершилась ли синхронизация нужного набора активов и доступен ли закрытый ключ в контексте задачи. Официальная документация fastlane match описывает его работу с общими сертификатами и профилями. Здесь достаточно убедиться, что сборка получила ожидаемый результат синхронизации; если хранилище содержит новый актив, это ещё не доказывает, что конкретная задача его установила и выбрала.

Не печатайте секреты и содержимое закрытого ключа в журнал CI. Для диагностики сохраняйте безопасные признаки: выбранное имя идентичности, профиль, App ID, целевую схему и результат проверки доступности ключа. Также не запускайте проверку только в интерактивной SSH-сессии, если рабочий процесс выполняется агентом под другим пользователем. Различия в окружении и связке ключей могут объяснить, почему ручной запуск успешен, а автоматический — нет.

Если перед вами стоит выбор, оставить подпись и сборку на локальном Mac или вынести постоянную задачу на отдельную машину, сначала оцените контроль над связкой ключей, доступность для команды и обслуживание профилей. Для оценки особенностей физической и виртуализированной среды пригодится сравнение bare metal и виртуализации macOS. Не меняйте инфраструктуру только ради одной ошибки: сперва подтвердите, что исправление активов действительно не дошло до исполнителя.

Завершите восстановление проверяемым архивом

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

Действуйте последовательно:

  1. Зафиксируйте исходную ошибку, выбранную схему, команду и Mac, на котором она возникла. Это позволит сравнить результаты после исправления.
  2. Проверьте в аккаунте разработчика состояние конкретного сертификата: тип, срок действия и статус отзыва. Сопоставьте его с назначением текущей сборки.
  3. На исполняющем Mac проверьте наличие подписывающей идентичности вместе с закрытым ключом. Если процесс автоматизирован, проверяйте под его фактической учётной записью.
  4. Сверьте Provisioning Profile с App ID, действующим сертификатом и нужными возможностями. Обновите или повторно загрузите профиль, если проверка показала несоответствие.
  5. Повторите Archive или экспорт с теми же параметрами, которыми готовится выпуск. Убедитесь, что сборка подписана ожидаемой идентичностью и использует подходящий профиль.
  6. Проверьте статус загрузки отдельно от результата подписи. Сохраните журналы, подтверждающие, что архив создан и отправлен нужным способом.

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

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

Частые вопросы о восстановлении подписи

Можно ли отправить обновление в App Store после истечения сертификата?

Сначала проверьте тип сертификата и состояние членства команды. Истёкший сертификат распространения может помешать подписать новую сборку для отправки, но сам по себе не означает, что уже опубликованное приложение немедленно перестанет работать или станет недоступным. Для обновления выберите действующую подпись, проверьте профиль и завершите новый Archive перед загрузкой.

Нужно ли пересоздавать Provisioning Profile после замены сертификата распространения?

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

Почему удалённый Mac не подписывает приложение после обновления сертификата?

Обновление в кабинете разработчика не переносит закрытый ключ на каждый Mac автоматически. Проверьте, что задание запускается на ожидаемом узле и под нужной учётной записью, а в связке ключей этого пользователя есть сертификат вместе с соответствующим закрытым ключом. Затем проверьте выбранный профиль и повторите Archive в той же среде, где работает автоматизация.

Чем истечение Apple Development отличается от истечения Apple Distribution?

Apple Development предназначен для разработки и подписания приложений для тестирования, а Apple Distribution — для распространения сборок, в том числе подготовки отправки в App Store. Истечение каждого сертификата нарушает сценарий, для которого он предназначен, но не следует считать их взаимозаменяемыми. Сначала сопоставьте сертификат с целью сборки, затем проверяйте профиль и настройки подписи.

Когда отдельный Mac упрощает выпуск

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

Локальный Mac даёт физический контроль, но требует покупки и самостоятельного обслуживания; общая CI-среда снимает часть инфраструктурной нагрузки, но может ограничивать настройку подписывающего окружения; удалённая машина добавляет сетевую зависимость и расходы по выбранному периоду использования. Если вам нужен временный или регулярно доступный macOS-узел для проверки и подписи, сначала изучите варианты удалённой среды MacDate и сопоставьте их с требованиями своей команды. Это разумнее, чем покупать отдельный Mac только ради редких выпусков; для постоянно работающей тяжёлой сборки или необходимости физических подключений локальное оборудование может оказаться уместнее.