Что означает ошибка верификации App Store
Ошибка верификации App Store возникает при попытке загрузить билд iOS-приложения в App Store Connect. Система App Store Connect автоматически проверяет билд на соответствие требованиям, включая корректность подписи, настройки и отсутствие запрещенных API. Если проверка не пройдена, вы увидите статус Invalid в разделе Activity вашего приложения, а в деталях может быть указано Invalid verification или подобное.
Эта ошибка блокирует возможность публикации приложения в App Store или распространения через TestFlight.
Причины возникновения
- Недействительный или истекший сертификат разработчика (iOS Distribution Certificate). Если сертификат, которым подписан билд, истек или был отозван, верификация не пройдет.
- Проблемы с provisioning profile:
- Profile не включает bundle identifier вашего приложения.
- Profile истек или отозван.
- Profile был создан для другой команды (Team).
- Несоответствие bundle identifier между проектом Xcode и provisioning profile.
- Неверные настройки подписи в Xcode (Signing & Capabilities):
- Выбран неправильный team.
- Используется provisioning profile, не соответствующий bundle identifier.
- При автоматическом управлении подписью Xcode не может создать корректный profile (например, из-за проблем с членством в Apple Developer Program).
- Поврежденный билд или использование недопустимых фреймворков/библиотек (например, приватных API).
- Несоответствие версии и сборки (CFBundleShortVersionString и CFBundleVersion) требованиям App Store (например, попытка загрузить билд с той же версией, что уже есть в App Store).
- Устаревшая версия Xcode или macOS, которые не поддерживают последние требования App Store.
Способ 1: Проверка и обновление сертификатов
- Откройте Xcode и перейдите в Xcode → Preferences → Accounts.
- Выберите свою Apple ID и команду (Team) в левой колонке.
- Нажмите Manage Certificates.
- Убедитесь, что в списке есть действующий сертификат iOS Distribution (и не истек). Если сертификат отсутствует или истек, нажмите кнопку + внизу и выберите iOS Distribution, чтобы создать новый.
- Если создали новый сертификат, скачайте и установите его в клюchain (Xcode сделает это автоматически).
- После обновления сертификата, перейдите в настройки проекта (Signing & Capabilities) и убедитесь, что выбран правильный team. Если используете автоматическое управление, Xcode должен обновить provisioning profile. Если вы используете ручное управление, то обновите profile в Apple Developer Portal.
Способ 2: Обновление provisioning profile
Если вы используете ручное управление provisioning profile:
- Войдите в Apple Developer Portal с учетной записью, которая имеет доступ к команде.
- Перейдите в Certificates, Identifiers & Profiles → Profiles.
- Найдите provisioning profile, который используется для загрузки в App Store (тип App Store).
- Проверьте, что profile:
- Связан с правильным App ID (bundle identifier).
- Включен ваш сертификат распределения (iOS Distribution).
- Не истек.
- Если что-то не так, отредактируйте profile или создайте новый:
- Выберите + для создания нового profile.
- Тип: App Store.
- Выберите App ID (должен соответствовать bundle identifier вашего приложения).
- Выберите сертификат распределения (тот, который вы проверили в способе 1).
- Выберите устройства (для App Store profile устройства не выбираются).
- Дайте имя profile и сгенерируйте.
- Скачайте новый profile и дважды щелкните, чтобы установить в Xcode.
- В Xcode, в настройках проекта (Signing & Capabilities), выберите новый provisioning profile (если используете ручное управление) или включите автоматическое управление, чтобы Xcode выбрал новый profile.
Если используете автоматическое управление подписью:
- В настройках проекта (Signing & Capabilities) снимите галочку Automatically manage signing.
- Выберите любой provisioning profile (или оставьте пустым).
- Снова установите галочку Automatically manage signing.
- Xcode должен пересоздать provisioning profile. Убедитесь, что в поле Provisioning Profile отображается профиль с типом Xcode Managed Profile и статусом Active.
Способ 3: Проверка настроек подписи в Xcode
- Откройте проект в Xcode.
- Выберите целевой проект (target) в навигаторе, затем вкладку Signing & Capabilities.
- Убедитесь, что в поле Team выбрана правильная команда (та, которая имеет доступ к App Store Connect).
- Если вы используете автоматическое управление:
- Убедитесь, что галочка Automatically manage signing установлена.
- В поле Provisioning Profile должен отображаться profile с типом Xcode Managed Profile.
- Поле Signing Certificate должно содержать Apple Distribution (или ваш сертификат разработчика, если это team с индивидуальным членством).
- Если вы используете ручное управление:
- Снимите галочку Automatically manage signing.
- В поле Provisioning Profile выберите profile, который вы обновили в способе 2.
- В поле Signing Certificate выберите ваш сертификат iOS Distribution.
- Проверьте, что Bundle Identifier в разделе General совпадает с App ID, указанным в provisioning profile.
Способ 4: Очистка проекта и перезапуск Xcode
Иногда ошибки верификации вызваны кэшированными данными Xcode.
- В Xcode выберите Product → Clean Build Folder (или нажмите Shift+Cmd+K).
- Закройте Xcode.
- Удалите папки кэша:
~/Library/Developer/Xcode/DerivedData~/Library/Caches/com.apple.dt.Xcode
- Перезапустите Xcode.
- Откройте проект и попробуйте снова загрузить билд (Product → Archive, затем загрузите через Organizer).
Способ 5: Проверка bundle identifier и версий
- В Xcode, в настройках целевого проекта (target), вкладка General, проверьте:
- Bundle Identifier — должен точно совпадать с App ID, указанным в provisioning profile. Обратите внимание на регистр и префикс (например,
com.example.app). - Version (CFBundleShortVersionString) — должна быть больше, чем у последней версии в App Store. Например, если в App Store версия 1.0, то здесь должна быть 1.1 или 2.0.
- Build (CFBundleVersion) — должна быть увеличена (обычно на 1) по сравнению с предыдущей сборкой для этой версии.
- Bundle Identifier — должен точно совпадать с App ID, указанным в provisioning profile. Обратите внимание на регистр и префикс (например,
- Если вы используете автоматическое управление версией (например, через скрипты), убедитесь, что значения обновляются правильно.
Способ 6: Обновление Xcode и macOS
- Убедитесь, что у вас установлена последняя стабильная версия Xcode. Откройте App Store → Обновления и проверьте.
- Также проверьте, что ваша версия macOS поддерживается последней версией Xcode. Иногда для загрузки билдов требуется определенная минимальная версия macOS.
- После обновления перезапустите Mac и попробуйте снова загрузить билд.
Профилактика
Чтобы избежать ошибок верификации в будущем:
- Регулярно проверяйте срок действия сертификатов и provisioning profile (в Apple Developer Portal и в Xcode). Устанавливайте напоминания за месяц до истечения.
- Используйте автоматическое управление подписью в Xcode, если это возможно. Это снизит риск ошибок.
- Перед загрузкой билда в App Store Connect убедитесь, что:
- Bundle identifier корректен.
- Версия и сборка увеличены.
- Проект собран без ошибок и предупреждений (особенно связанных с подписью).
- Следите за обновлениями Xcode и требованиями App Store. Apple периодически обновляет требования к билдам (например, минимальная версия iOS, требования к архитектурам).
- Для командной работы используйте единую систему управления сертификатами и provisioning profile (например, через Apple Developer Portal с общим доступом).