Как протестировать ios11 в продвижении покупок в приложениях

Apple представила продвинутые покупки в приложениях в iOS 11. Хотя я внедрил новый метод SKPaymentTransactionObserver, paymentQueue: shouldAddStorePayment: for:, я не смог успешно протестировать "покупку" элемента. Следует ли тестировать и покупать тестовую среду Sandbox?

Apple обсуждает инициирование тестирования через URL-адрес формы:

ITMS-услуги://действие = purchaseIntent & BundleID = com.example.app & productIdentifier = com.example.app.myIAP

Я разместил URL-адрес в электронном письме для себя. Когда я нажимаю на URL-адрес, я получаю следующую последовательность:

1) Переключается на MyApp, и при этом должен быть добавлен адресAddStorePayment с продуктом с моим идентификатором продукта, com.example.app.myIAP(поощрение запуска)

2) Have paymentQueue: shouldAddStorePayment: for: return true.

3) paymentQueue: updatedTransactions: вызывается с транзакцией в состоянии "покупки" (но не купленной). Он имеет идентификатор транзакции nil.

4) Появляется предупреждение о том, чтобы войти в систему. Я вхожу в систему с песочницей Apple ID - нажав кнопку "Купить" в предупреждении о знаке.

5) Еще одно высказывание для входа в систему. Я вхожу в систему с песочницей Apple ID - нажав кнопку "Купить" в предупреждении о знаке.

6) paymentQueue: updatedTransactions: вызывается с транзакцией в состоянии "failed". Он имеет идентификатор транзакции non-nil.

Должна ли процедура addAddStorePayment делать что-то лишнее?

Ответ 1

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

Но здесь есть сценарий с курицей и яйцом. Теперь, когда элементы находятся в хранилище, я могу запускать локальную/отладочную сборку и тестирование из App Store. Но я думаю, что я также сжег несколько идентификаторов пользователей Sandbox, пытаясь разобраться.

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

1) Перейдите в App Store и выйдите из системы.

2) Создайте/запустите свое приложение и используйте "Восстановить покупки" - войдите в систему с вашим идентификатором/паролем Sandbox.

3) Убедитесь, что ваш пользователь Sandbox теперь зарегистрирован в App Store (не входите непосредственно в App Store с пользователем Sandbox или этот пользователь больше не работает.)

4) Найдите свое приложение, а затем найдите раздел "Покупки в приложении" с продвинутыми функциями. Выберите рекламируемую функцию покупки в приложении.

5) Ваше приложение загружено. Через некоторое время вы получите предупреждение: Подтвердите покупку своего приложения ---- Вы хотите купить XXXX за 0,99 доллара США? --- [Окружающая среда: Песочница] ---- Отменить/Купить

6) После покупки получает предупреждение: вы все настроены. ---- Ваша покупка прошла успешно. ---- [Окружающая среда: Песочница] ---- OK

7), если вы сделаете это по элементу, который пользователь "Песочницы" уже приобрел, вы получаете предупреждение: вы уже купили это. Вы хотите получить его снова бесплатно? ---- [Окружающая среда: Песочница] ---- Отмена/ОК

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

Надеюсь, что это поможет, но все же не очень хороший ответ в первый раз.