TL; DR Можете ли вы отложить вызов finishTransaction для расходных материалов в iOS, чтобы имитировать androids потребление Async?
В Android можно купить предмет, который окажется в списке, управляемом API биллинга. И могут быть доступны через queryPurchaseHistoryAsync .
Затем предмет можно использовать позже. Покупка и потребление - это две разные вещи.
Учетная запись не является обязательной в нашем приложении, и мы используем описанную функциональность в Android для отслеживания предметов, которые пользователь купил / но еще не использовал, а также когда один потерял свое устройство .
Документы не ясны в SKPaymentQueue относительно синхронизации нескольких устройств.
Содержимое очереди сохраняется между запусками вашего приложения.
Но на практике это, кажется, обменивается между устройствами.
В то время как различные источники предполагают, что вы должны позаботиться об управлении состоянием расходных материалов для себя.
Мне было интересно, можно ли использовать SKPaymentQueue в качестве единой точки правды, сохраняя расходуемые SKPaymentTransaction в купленном состоянии. Поэтому я бы не стал вызывать finishTransaction до того, как предмет фактически израсходуется.
Теоретически транзакция должна оставаться в SKPaymentQueue и должна передаваться на все устройства, подключенные к одной учетной записи AppStore.
Как только транзакция завершится на одном из устройств, она должна быть удалена из очереди и снова информация должна быть передана на все устройства.
Я не мог найти этот подход где-нибудь, и я хотел бы знать, если я пропускаю что-то важное здесь.