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
Я одна из жертв здесь. Ну, я был.
Вчера у меня возникла проблема, и я много раз пересматривал все шаги.
Сегодня я просмотрел весь список от тройбранта.
Хорошо, моя ошибка, я забыл создать правильный профиль распространения: исправлено
загрузил двоичный файл и сразу же отклонил: говорят, что он работает лучше, чем отсутствие загрузки
хорошо, другое исправление: удалил 10 цифр перед моим доменным именем из любого места в XCode (XXXXXXXXXX.com.company.app to com.company.app)
Все еще не работает.
Убедитесь, что мое устройство не подключено к учетной записи iTunes.
Чистая сборка каждый раз и удаление приложения с устройства иногда
Все еще не работает.
- Наконец, при запросе продуктов я использовал только 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
После того, как вы вернулись на день или около того с возвратом недействительных продуктов, мое решение сводилось к тому, чтобы убедиться, что элемент покупки был "одобрен разработчиком для продажи". Несмотря на то, что рядом с пунктом была отмечена зеленая метка, которая "очищена для продажи", мне все еще нужно было загрузить скриншот и выбрать одобрение.
Это похоже на обратный и нелогичный способ делать вещи, учитывая, что я все еще тестирую свое приложение и еще не готов его продавать.