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 делать что-то лишнее?