Я столкнулся с проблемой с функцией покупок в приложении (IAP) моего приложения Flutter, особенно с восстановлением покупок на iOS. .
Мое приложение предлагает непотребляемую премиум-версию, которая обеспечивает пожизненный доступ к определенным функциям. Однако в процессе проверки в App Store я получил отказ по следующей причине:
Руководство 3.1.1 – Бизнес – Платежи – Покупки в приложении.
"Мы обнаружили, что в вашем приложении есть функция восстановления ранее приобретенных продуктов, купленных в приложении, путем ввода Apple ID и пароля пользователя. Однако покупки в приложении не могут быть восстановлены таким образом. ."
Хотя на Android процесс восстановления проходит гладко и без каких-либо запросов на вход, на iOS он запускает запрос на вход, что приводит к отказ.
это произошло только с магазином приложений, с Google Play все было в порядке.
Вот соответствующий фрагмент кода из моего приложения:
Код: Выделить всё
static Future restorePurchases(
PersistenceViewModel persistenceViewModel, BuildContext context) async {
try {
CustomerInfo customerInfo = await Purchases.restorePurchases();
// Handle restored purchases
if (customerInfo.allPurchasedProductIdentifiers.contains(premium)) {
// Handle the restored product identifiers
if (kDebugMode) {
print('Premium version restored');
}
// Here I make the user premium if successfully restored
await persistenceViewModel.setPremium(true);
// Show Alert
if (!context.mounted) return;
showDialog(
context: context,
builder: (BuildContext context) {
return const ShowRestoredAlert();
},
);
}
} on PlatformException catch (e) {
if (kDebugMode) {
print('Error restoring purchases: $e');
}
}
}
Будем очень признательны за любые рекомендации и предложения.
Заранее спасибо!
Я хотел бы решить эту проблему и обеспечить бесперебойную работу процесса восстановления как на iOS, так и на Android. Как я могу изменить свой код, чтобы добиться этого, не вызывая приглашение на вход в iOS?
Подробнее здесь: https://stackoverflow.com/questions/781 ... lutter-ios