StoreKit В приложении Недействительные идентификаторы продуктов

Возможный дубликат:
iPhone StoreKit - недопустимый идентификатор продукта

Я получаю пустой массив идентификаторов продуктов от SKProductsRequest.

Я сделал следующие шаги:

  • Создана учетная запись пользователя для проверки покупок в разделе "Управление пользователями" в iTunes Connect

  • Созданы некоторые из продуктов для покупки приложений в разделе "Управление покупками в приложениях".

  • Загрузив приложение на iPhone, перейдите в Настройки → Сохранить и выйдите из обычного хранилища.

  • Установите контрольную точку в обратном вызове (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

Все представленные идентификаторы продукта находятся в ответе invalidProductIdentifiers. При отправке запроса я попробовал оба Идентификатора продукта, созданные во время шага 2, а также те ID, которые были префиксными идентификаторами Bundle ID.

Спасибо заранее,

Рагх

Ответ 1

Я попробовал все, что предлагалось на форумах Apple и здесь, и все еще не мог заставить его работать.

Нашел решение:

Ваше приложение должно быть передано Xcode, чтобы песочница была включена.

Ваше приложение должно быть создано и установлено локально с помощью Xcode, а не загружено из App Store.

Очевидно, верно? Что ж, если вы работаете с обновлением существующего приложения, устройство все равно будет воспринимать его как приложение, установленное в App Store.

Так что удалите приложение с вашего устройства. Затем установите приложение обратно на устройство, используя Build & Запустите устройство, привязанное к вашему Mac. Это должно работать сейчас :)

Ответ 2

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

http://troybrant.net/blog/2010/01/invalid-product-ids/

Ответ 3

Контракт для платных приложений должен действовать для получения данных о настройках покупок в приложении.

Это сработало для меня. У меня была такая же проблема.

Ответ 4

Я одна из жертв здесь. Ну, я был. Вчера у меня возникла проблема, и я много раз пересматривал все шаги. Сегодня я просмотрел весь список от тройбранта.

  1. Хорошо, моя ошибка, я забыл создать правильный профиль распространения: исправлено

  2. загрузил двоичный файл и сразу же отклонил: говорят, что он работает лучше, чем отсутствие загрузки

  3. хорошо, другое исправление: удалил 10 цифр перед моим доменным именем из любого места в XCode (XXXXXXXXXX.com.company.app to com.company.app)

Все еще не работает.

  1. Убедитесь, что мое устройство не подключено к учетной записи iTunes.

  2. Чистая сборка каждый раз и удаление приложения с устройства иногда

Все еще не работает.

  1. Наконец, при запросе продуктов я использовал только productID, а не весь com.company.app.productID.

И это сработало.

Я думаю, что иногда у нас бывает более 1 ошибки, и когда вы исправляете все из них, трудно понять, что именно является причиной проблемы.

Теперь я счастлив

Ответ 5

Наша проблема была последним пунктом бюллетеня Apple FAQ, "Почему мои идентификаторы продукта возвращаются в массиве invalidProductIdentifiers?:

  • Вы не выполнили все финансовые требования (см. раздел "Контракты, налоговая и банковская информация" этого документа).
  • Вы не использовали явный идентификатор приложения.
  • Вы не использовали профиль Provisioning Profile, связанный с вашим явным идентификатором приложения.
  • Вы не использовали правильный код продукта в своем коде. См. Технические вопросы Q & A, QA1329, "В идентификаторах продуктов для покупки приложений" для получения дополнительной информации о идентификаторах продуктов.
  • Вы не очистили свои продукты для покупки приложений в iTunes Connect.
  • Возможно, вы изменили свои продукты, но эти изменения еще не доступны для всех серверов App Store.
  • Если вы или App Review отклонили свой последний бинарный файл в iTunes Connect.

Я изменил самую последнюю версию (которая была отклонена) на "Ожидание загрузки", нажав "Готово для загрузки двоичных файлов" в iTunes Connect, и проблема была решена примерно через 10 минут.

Ответ 6

Кажется, люди путаются с идентификаторами продукта.

Вам не нужно добавлять весь домен (например, com.company.product.inappname) для работы InApp.

Вы ДОЛЖНЫ использовать ТОЧНЫЙ ИДЕНТИФИКАТОР ИДЕНТИЛЯТОРА, который вы создаете в iTunes Connect. В моем случае я только что создал "Product1", использовал это, когда вызывается SKProductsRequest и что он.

Больше боли.

Эта ссылка содержит много полезной информации, хотя отсутствует эта небольшая деталь: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

Ответ 7

Вы вышли из AppStore из Settings.app? Только при выходе из системы вам будет предложено снова войти в систему.

Включены ли покупки в приложении для вашего идентификатора приложения? Идентификатор приложения с подстановочным знаком (*) не может быть включен для покупок в приложении. Для вашего приложения вы должны создать новый идентификатор приложения.

Мои два цента здесь: http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/

Ответ 8

Моя проблема была первой проблемой, описанной здесь:

https://devforums.apple.com/thread/23344?start=0&tstart=0

"Во-первых, вам нужно убедиться, что ваш идентификатор приложения на Портале верен".

Ответ 9

Является ли ваша покупка в приложении "очищена для продажи"? Это настройка, которую я не проверял в первый раз.

Ответ 10

Настройка имени продукта с тем же именем, которое было передано в iTunes Connect, решило его для меня.

Ответ 11

Сегодня я обнаружил еще одну вещь, которая может вызвать такую ​​проблему. Несколько раз, по странным причинам, приложение получает коррумпированные данные, и все пытаются купить что-то по ошибке. Я решил, что проблема с удалением приложения с устройства, очистка сборки на Xcode и ее создание снова на устройстве.

Ответ 12

Я обнаружил, что если ваше приложение имеет другой заголовок на другом языке, тогда у вас будет такая проблема, если вы не установите язык iPhone на английский. Это происходит только в процессе развития; для производства, похоже, не проблема.

Ответ 13

У меня есть 15 несовместимых продуктов.

Внезапно все 15 из них стали отображаться как "недопустимые" на одном из моих устройств (iPod Touch 4G), но действительны в другом (iPhone 4S); очень странно.

Я удалил/переустановил и теперь он работает нормально.

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

Тем не менее, вся Sandbox Environment всегда шаткая и имеет много "времени простоя". Иногда ожидание - это ответ.

Ответ 14

На всякий случай у кого-то все еще возникают проблемы с получением недопустимого идентификатора продукта... Помимо всего, что было опубликовано в этом разделе, я только что установил правильный профиль предоставления отладки, удалил приложение с моего iPhone, перезапустил свое устройство и ударил, получил информацию о продукте. Я попробовал это после получения информации о продукте через симулятор (с последним XCode теперь это возможно). Я собирался загрузить двоичный файл и затем отклонить его, но потом я попробовал выше и получил его. Надеюсь, это поможет!

Ответ 15

Убедитесь, что ваше "Имя продукта" в xcode совпадает с приложением, представленным в iTunes Connect.

Ответ 16

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

Это похоже на обратный и нелогичный способ делать вещи, учитывая, что я все еще тестирую свое приложение и еще не готов его продавать.