Подтвердить что ты не робот

IOS Sandbox Test User account Управление подпиской

В настоящее время я пытаюсь добавить IAP в существующее приложение. С этой целью я добавил некоторые продукты и создал некоторых тестирующих пользователей. Продукты - это повторяющиеся подписки. Устройство, с которым я тестирую iPhone 4S с iOS 5.1.

Я могу успешно запросить магазин для своих продуктов и успешно приобрести их у моих новых пользователей Test. Проблема в том, что если я попытаюсь управлять своими подписками из приложения "Настройки магазина", это заставляет меня просматривать мою учетную запись, сообщая мне, что "эта учетная запись не была использована для покупки чего-либо в AppStore, пожалуйста, просмотрите свою учетную запись и продолжите". Если я просмотрю аккаунт, он не позволит мне продолжить работу без предоставления информации CreditCard.

Конечным результатом является то, что я никогда не могу отменить свои тестовые подписки. Я удалил тестовых пользователей и создал новые, удалил приложение и переустановил его, убил приложение StoreApp и Settings, перезагрузил устройство, проверил учетные записи по электронной почте перед покупкой, не проверял учетные записи по электронной почте перед покупкой... все перестановки похоже, терпят неудачу.

Иногда я буду покупать одну и ту же подписку дважды, которая заставит StoreKit попросить меня управлять настройками моей подписки. Иногда это приводит к предыдущему процессу "Проверка учетной записи", а иногда приводит к предупреждению, в котором говорится: "Не удается подключиться к iTunes Store".

У меня закончились идеи о том, как продолжить.

EDIT - вот поток событий с любым пользователем iTunesConnect Test, который я создаю

Начальная подписка
Initial Subscription

Использовать существующий идентификатор
Use Existing ID

Вход для входа в тестовую учетную запись
Test Account Sign-In

Управление подпиской
Manage Subscription

Вход в AppStore
AppStore Sign-in

Не удается подключиться к AppStore
Cannot Connect

Просмотрите свою учетную запись
Review

Затем процесс проверки заставляет меня вводить информацию CreditCard, хотя у меня есть мой адрес как "1 Infinite Loop Cupertino, CA" (т.е. он знает, что это тестовая учетная запись).

4b9b3361

Ответ 1

Есть ответ от разработчика Apple (Рич Кубота) О тестировании подписки в среде песочницы.

Это ошибка в процессе симуляции покупки в приложении. Не поддерживается способ моделирования процесса отмены или управления процессом подписки из пользовательского приложения iTunes. Это ограничение также существует в версии приложения TestFlight. Когда вы отправляете сборку приложения TestFlight пользователю, и он тестирует приложение, учетная запись пользователя фактически работает в среде песочницы. Вы убедились в этом, поскольку приложение TestFlight не будет отображаться как управляемое приложение в разделе управляемой подписки iTunes для пользователей TestFlight. Это потому, что приложение находится в среде песочницы, о которой приложение iTunes ничего не знает.

С тех пор, как я ответил на этом форуме, прошло некоторое время, но лучший способ проверить, будет ли приложение обрабатывать процесс автообновления, - это убедиться, что приложение также обрабатывает обнаружение автообновления подписок через транзакцию правильно., Например, если вы покупаете 1 месяц подписки в среде песочницы. Затем завершите работу приложения, подождите 6 минут, затем перезапустите приложение, обнаружит ли транзакция serverObserver наличие незавершенной транзакции (сжатое продление за один месяц) для обработки.

Это очень похоже на то, что происходит в случае, когда пользователь перезапускает подписку на странице управления подписками iTunes. Транзакция записывается в магазине iTunes, и включена незавершенная транзакция для учетной записи пользователя/идентификатора пакета приложения. Когда приложение запускается и активируетactionObserver (посредством вызова addTransactionObserver), обнаруживается incompleteTransaction и вызывается метод updatedfransaction deletefgate для обработки обновления. Затем приложение может проверить applicationReceipt, чтобы убедиться, что теперь есть элемент массива in_app для элемента автообновления подписки, у которого значение expire_date больше текущей даты и что активная функция автообновления подписки product_id активна.

Что касается проверки того, что автоматическое продление подписки было отменено, то для симуляции требуется поддержка сервера iTunes Store. Однако процесс проверки квитанции работает ежедневно и может определить, какой элемент массива in_app является наиболее актуальным для автообновления подписки, а затем обнаружение, если установлена опция cancel_date, сообщает приложению, что подписка была отменена. Как примечание, просто обнаружение, что поле cancel_date для любого элемента может привести к ложному положительному результату. Пользователь, возможно, отменил автоматическое продление подписки ранее, а затем решил, что это не так уж и плохо, и повторно приобрел товар. По этой причине логике необходимо убедиться, что поле cancel_date установлено в самом текущем элементе массива in_app, чтобы знать, что текущая подписка действительно была отменена. Одна проблема, которую я пытаюсь определить - будет ли перемещенный элемент expire_date перемещен вверх до cancel_date, чтобы отмененная подписка могла выглядеть так же, как и просроченная подписка. Похоже, правильный ход - но эта информация контролируется командой сервера iTunes Store.

Если вы хотите использовать механизм моделирования этих функций среды производственного хранилища в изолированной программной среде, я предлагаю вам отправить запрос на улучшение с помощью веб-страницы отчета Apple Developer Bug Report. Пожалуйста, выберите продукт iTunesConnect для отчета об ошибке, так как это предложение для iTunes Store, а не iOS.

Ответ 2

Вы не можете управлять подписками в песочнице, но поскольку Жан-Поль де Виль де Гойт узнал на форумах разработчиков Apple:

1 месяц подписки обновляются каждые 5 минут. Все идет нормально. Oни автоматически обновлять 5 раз, а затем они останавливаются, поэтому через 25 минут вы получите ошибка 21006. Однако даже при выкупе одной и той же подписки он не будет автоматически обновляться на той же тестовой учетной записи, поскольку он имеет уже автоматически обновляется 5 раз. Поэтому, если вы хотите протестировать обновление, и вы были востребованы с этими подписками какое-то время, когда вам нужно создайте нового пользователя тестирования itunes connect. Это очень раздражает честно и было бы намного легче, если бы мы могли просто reset весь историю покупок тестовой учетной записи пользователя.

Я тестировал свои подписки таким же образом.