FAQ 6 Технической записки 2259 - содержит полный список известных причин сбоя предварительной проверки продукта (где все элементы в SKProductRequest возвращаются в массиве invalidProductsIdentifiers.
Вот FAQ 6
Почему мои идентификаторы продукта возвращаются в массиве invalidProductIdentifiers?
Идентификаторы вашего продукта могут быть возвращены в массивах invalidProductIdentifiers по одной или нескольким из следующих причин:
Вы не выполнили все финансовые требования (см. Раздел «Контракты, налоговая и банковская информация» данного документа).
Вы не использовали явный идентификатор приложения.
Вы не использовали профиль обеспечения, связанный с вашим явным идентификатором приложения.
Вы не использовали правильный код продукта в своем коде. См. Технические вопросы и ответы, QA1329, «Идентификаторы продуктов в приложении» для получения дополнительной информации об идентификаторах продуктов.
Вы не очистили свои продукты In App Buy для продажи в iTunes Connect.
Возможно, вы изменили свои продукты, но эти изменения еще не доступны для всех серверов App Store.
Если вы или App Review отклонили ваш последний двоичный файл в iTunes Connect.
Я добавляю две дополнительные причины полноты (которые встречаются очень редко)
1. Уровень цен на товары составляет 80+ ($ 500 +)
2. Тестовое устройство взломано.
Существует также третья причина, которая связана с изменениями, внесенными в среду песочницы, где простое решение состоит в том, чтобы очистить приложение и все профили обеспечения и перезагрузить устройство. Инструкции следуют
1. Удалить приложение.
2. Войдите в приложение «Настройки» -> «Общие» -> «Профили» - удалите все профили обеспечения
3. нажмите и удерживайте кнопки приложения и спящего режима, пока не появится логотип Apple - (около 10 секунд)
4. После перезагрузки устройства iOS установите приложение и профиль обеспечения и повторите тестирование.
Предположим, что сброс устройства iOS не имеет никакого эффекта. В этом случае одна из причин, перечисленных в FAQ, верна.
Что касается финансовых требований, ВСЕ контракты должны быть выполнены - не может быть отложенных позиций.
Следующее, что нужно попробовать, это повторно загрузить профиль обеспечения - в некоторых случаях сертификат разработки может быть изменен без вашего ведома. Обычно вы будете уведомлены, но иногда уведомление задерживается.
Возможно, двоичный файл был загружен в iTunesConnect, а текущее состояние в iTunesConnect отклонено. Во-первых, вы должны знать, что нет необходимости загружать бинарный файл в iTunesConnect. Существует давнее заблуждение, что двоичный файл должен быть загружен, чтобы протестировать приложение для покупки в приложении. Это неверно и усложняет процесс тестирования. Однако, если это так в вашем случае, решение состоит в том, чтобы изменить состояние приложения на iTunesConnect. ЕСЛИ и только ЕСЛИ, двоичный файл был ранее загружен, и текущее состояние отклонено, затем следуйте этим инструкциям.
Загрузите версию приложения в iTunesConnect, чтобы заставить состояние измениться на «ожидает рассмотрения». В App Store уйдет день (скорее всего, несколько), прежде чем приложение будет рассмотрено. А пока вы можете протестировать приложение. Предполагая, что вы все еще работаете, вы сами «отклоните» приложение, внесете изменения и начнете цикл заново. В какой-то момент приложение будет готово, и вы оставите его для рассмотрения.