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

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

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

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

  1. Создана учетная запись пользователя «Проверка покупки приложения» в разделе «Управление пользователями» в iTunes Connect

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

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

  4. Установите контрольную (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

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

Заранее спасибо,

Рагу

Я попробовал все, что было предложено на форумах Apple, и здесь, и все еще не мог заставить его работать. Нашел решение – ваше приложение должно быть передано Xcode, чтобы песочница была включена.

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

Поэтому удалите приложение с вашего устройства. Затем установите приложение обратно на устройство, используя Build & Run, с вашим устройством, привязанным к вашему Mac. Он должен работать сейчас 🙂

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

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

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

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

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

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

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

3) ok, другое исправление: удалил 10 цифр перед моим доменным именем извне в xcode (XXXXXXXXXX.com.company.app в com.company.app)

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

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

5) Чистая assembly каждый раз и удаление приложения с устройства иногда

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

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

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

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

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

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

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

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

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

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

Вы ДОЛЖНЫ использовать ТОЧНЫЙ идентификатор продукта, который вы создаете в iTunes Connect. В моем случае я только что создал «Product1», использовал это при вызове SKProductsRequest и все.

Нет больше боли.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Interesting Posts
Давайте будем гением компьютера.