Предупреждение о загрузке Apple TestFlight ITMS-90191: отсутствует доступ к `beta-reports-active`

Когда я загружаю сборку в новую принадлежащую Apple и интегрированную с iTunes Connect TestFlight, я вижу следующий журнал:

ПРЕДУПРЕЖДЕНИЕ ITMS-90191: "Отсутствие права на бета-версию. Приложение не включает бета-отчеты-активное право. Если вы планируете распространять эту сборку через TestFlight для бета-тестирования, пожалуйста, заново создайте это приложение с недавно созданным обеспечением профиль".

Когда я смотрю сборку на iTunes Connect, я также вижу следующее предупреждение:

To use TestFlight Beta Testing, build X.Y.Z must contain the correct beta entitlement. For more information, see the FAQ.

Чтобы использовать тестовое тестирование TestFlight, постройте X.Y.Z, чтобы он содержал правильное бета-право. Для получения дополнительной информации см. Часто задаваемые вопросы.

Связанный FAQ:

Что делать, если моя предварительная сборка не содержит правильного бета-разрешения?

Чтобы использовать приложение TestFlight для тестирования своей предварительной публикации, он должен быть подписан с профилем Provisioning Distribution App Store, который включает бета-право. Новые профили распределения распределения, созданные в Центре разработчиков iOS, автоматически будут содержать бета-право.

Если у вас есть существующий профиль распределения, который был создан до запуска TestFlight Beta Testing, вы должны восстановить его.

Проблема заключается в том, что я использую недавно созданный профиль распределения дистрибутива App Store. Я создал его так:

App Store Distribution Provisioning Profile

Когда я проверяю источник загруженного профиля Provisioning Profile, я вижу:

<key>Entitlements</key>
<dict>
    // ...
    <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    // ...

Итак, профиль Provisioning Profile установлен для production, а имеет..

Однако iTunes Connect продолжает жаловаться, когда эта сборка загружается в TestFlight.

Любые идеи по устранению этой проблемы? Является ли это ошибкой Apple?

rdar://20128048

Ответ 1

Во-первых, убедитесь, что вы используете профиль Профиль распространения дистрибутива App Store. Это, скорее всего, профиль другой, из профиля профиля распределения специальных хостов, который вы использовали для подписи до Apple TestFlight.

Я продолжал удалять Error ITMS-90191 после того, как переключился на профиль распределения дистрибутива App Store. Я исправил проблему, добавив ключ beta-reports-active к моему целевому файлу Entitlements.plist в проекте Xcode.

Ключ beta-reports-active должен быть включен в профиль Provisioning Profile И права пользователя.

TargetName.entitlements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    // ...

    <key>beta-reports-active</key>
    <true/>

    // ...

</dict>
</plist>

После добавления права на мою цель я могу успешно загрузить сборку в iTunes Connect TestFlight без предупреждения ITMS-90191:

enter image description here

Ответ 2

Вручную редактирование файла plist не сделал это для меня.
Редактирование существующего профиля и создание файла также НЕ работало в этот раз.
Но, как и для joehl, создание профиля NEW Provision действительно фиксировало его для меня. Итак, создайте новый профиль Provision Profile, и вы вернетесь в бизнес. Это похоже на сбой в TestFlight.

Ответ 3

Использование профиля подготовки AppStore разрешило это для меня. Мне удалось успешно распространять и устанавливать на устройства. Как обычно, я использовал профиль подготовки AdHoc, и вдруг я начал получать эту ошибку. Разочарование действительно.

Ответ 4

Я смог исправить это, добавив это в мой xcodebuild script.

xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>

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

Ответ 5

Простое решение: удалите предыдущий профиль обеспечения и создайте новый. решает мою проблему.:)

Ответ 6

Если вы используете Fastlane, убедитесь, что для шага sigh установите ad-hoc на false, иначе он будет генерировать специальный профиль, который не подходит для распространения TestFlight. то есть:.

sigh(
  adhoc: false,
  team_id: "XXXXXXXXX"
)