Hi,
I’m using purchases_flutter(5.4.0). I’ve set up the entitlements, offerings, products as well as packages as guided in https://docs.revenuecat.com/docs/ios-products. I can get the offerrings and display the packages correctly. But when I make a call to `Purchases.purchasePackage()` to purchase a package, the call just hangs and doesn’t return at all. Android works without any problems. I tried it with sandbox and real icloud accounts, the result is still the same..The problem is only on IOS. It has been working flawlessly for about 40 days, with over 300 subscription purchases made, but for the past 3-4 days, I've been encountering this problem. When I check the RevenueCat dashboard, I can see the purchases, but there is no response from the 'purchasePackage' method in the app. I also tried upgrading the Purchases_flutter library to version 5.6.5 with the same result. You can see that the purchase is successfully made in the logs. I have also looked into other topics experiencing the same error but couldn't find a solution.
Thanks.
//SDK INIT
await Purchases.setLogLevel(LogLevel.verbose);
PurchasesConfiguration configuration;
configuration = PurchasesConfiguration(AppConstants.revenueCatAppleApiKey)
..appUserID = loginUserId
..observerMode = false;
await Purchases.configure(configuration);
await Purchases.logIn(loginUserId);
CustomerInfo purchaserInfo;
if (Config.isAndroid) {
String? oldProduct;
var entitlements = customerInfo.entitlements.alleentitlementsID];
if (entitlements != null && entitlements.isActive) {
oldProduct = entitlements.productIdentifier;
}
if (oldProduct != null) {
//Android Upgrade & Downgrade
purchaserInfo = await Purchases.purchasePackage(currentItem,
googleProductChangeInfo: GoogleProductChangeInfo(oldProduct));
}
else {
//Android Purchase
purchaserInfo = await Purchases.purchasePackage(currentItem);
}
} else {
//IOS Purchase
purchaserInfo = await Purchases.purchasePackage(currentItem);
}
//*****
if (purchaserInfo.entitlements.alleentitlementsID] != null &&
purchaserInfo.entitlements.alleentitlementsID]!.isActive) {
//...
}
-configure] INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects?
bconfigure] DEBUG: ℹ️ Configuring SDK using RevenueCat's UserDefaults suite.
upurchases] VERBOSE: DeviceCache.init: DeviceCache (0x0000000283f4f2a0)
0purchases] VERBOSE: StoreKit1Wrapper.init: StoreKit1Wrapper (0x0000000283f4d320)
0identity] DEBUG: 👤 Identifying App User ID
npurchases] VERBOSE: PurchasesOrchestrator.init: PurchasesOrchestrator (0x000000010485f550)
0configure] DEBUG: ℹ️ Debug logging enabled
uconfigure] DEBUG: ℹ️ SDK Version - 4.25.9
configure] DEBUG: ℹ️ Bundle ID - com.fzfz.fz
configure] DEBUG: ℹ️ System Version - Version 15.4.1 (Build 19E258)
configure] DEBUG: ℹ️ Not using a simulator.
Bconfigure] DEBUG: 👤 Initial App User ID set
]configure] DEBUG: ℹ️ Purchases is configured with response verification disabled
gconfigure] VERBOSE: Purchases.init: created new Purchases instance: Purchases (0x00000001341d6f90)
StoreKit Wrapper: left(<RevenueCat.StoreKit1Wrapper: 0x283f4d320>)
nconfigure] VERBOSE: Purchases.deinit: Purchases (0x00000001048e8460)
epurchases] VERBOSE: PurchasesOrchestrator.deinit: PurchasesOrchestrator (0x00000001341583f0)
upurchases] VERBOSE: DeviceCache.deinit: DeviceCache (0x0000000283f33a80)
.purchases] VERBOSE: StoreKit1Wrapper.deinit: StoreKit1Wrapper (0x0000000283f31980)
iconfigure] DEBUG: ℹ️ Delegate set
)purchases] VERBOSE: Updating all caches
boffering] DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
cnetwork] VERBOSE: Enqueing network operation 'GetOfferingsOperation' with cache key: 'GetOfferingsOperation 08ead447-276d-49c7-ba55-2f2f56e9602c'
gnetwork] DEBUG: ℹ️ GetOfferingsOperation: Started
nnetwork] DEBUG: ℹ️ There are no requests currently running, starting request GET /v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings
uetags] VERBOSE: Using etag '77b713b0527f3bfe' for request to 'https://api.revenuecat.com/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings'. Validation time: 2023-09-16 16:55:15 +0000
2network] DEBUG: ℹ️ API request started: GET '/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings'
1network] VERBOSE: Enqueing network operation 'GetCustomerInfoOperation' with cache key: 'GetCustomerInfoOperation 08ead447-276d-49c7-ba55-2f2f56e9602c'
eidentity] WARN: ⚠️ The appUserID passed to logIn is the same as the one already cached. No action will be taken.
ncustomer] DEBUG: ℹ️ Vending CustomerInfo from cache.
tnetwork] DEBUG: ℹ️ Network operation 'GetOfferingsOperation' found with the same cache key 'GetOfferingsOperation 08ead447-276d-49c7-ba55-2f2f56e9602c'. Skipping request.
fattribution] DEBUG: ℹ️ setting reserved attribute: $displayName
setags] VERBOSE: Storing etag '77b713b0527f3bfe' for request to 'https://api.revenuecat.com/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings' (success)
.network] DEBUG: ℹ️ API request completed: GET '/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings' (304)
lstore_kit] DEBUG: ℹ️ No existing products cached, starting store products request for: s"com.fz.boosterpack_1month", "com.fz.boosterpack_1year"]
soffering] DEBUG: ℹ️ Found an existing request for products: m"com.fz.boosterpack_1month", "com.fz.boosterpack_1year"], appending to completion
dnetwork] DEBUG: ℹ️ GetOfferingsOperation: Finished
1network] DEBUG: ℹ️ GetCustomerInfoOperation: Started
network] DEBUG: ℹ️ Serial request done: GET /v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c/offerings, 0 requests left in the queue
onetwork] DEBUG: ℹ️ There are no requests currently running, starting request GET /v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c
etags] VERBOSE: Using etag 'ae3d2ff24c65ce6d' for request to 'https://api.revenuecat.com/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c'. Validation time: 2023-09-16 16:55:15 +0000
enetwork] DEBUG: ℹ️ API request started: GET '/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c'
1store_kit] DEBUG: 😻 Store products request received response
]offering] WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with identifier turkeyleague. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used).
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.
More information: https://rev.cat/why-are-offerings-empty
roffering] WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with identifier default. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used).
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.
More information: https://rev.cat/why-are-offerings-empty
ioffering] DEBUG: 😻 Offerings updated from network.
soffering] WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with identifier turkeyleague. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used).
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.
More information: https://rev.cat/why-are-offerings-empty
ooffering] WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with identifier default. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used).
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings.
More information: https://rev.cat/why-are-offerings-empty
foffering] DEBUG: 😻 Offerings updated from network.
retags] VERBOSE: Storing etag 'ae3d2ff24c65ce6d' for request to 'https://api.revenuecat.com/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c' (success)
Snetwork] DEBUG: ℹ️ API request completed: GET '/v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c' (304)
-customer] VERBOSE: Updating CustomerInfo '08ead447-276d-49c7-ba55-2f2f56e9602c' request date: 2023-09-16 16:56:31 +0000
5customer] DEBUG: 😻 CustomerInfo updated from network.
fnetwork] DEBUG: ℹ️ GetCustomerInfoOperation: Finished
-network] DEBUG: ℹ️ Serial request done: GET /v1/subscribers/08ead447-276d-49c7-ba55-2f2f56e9602c, 0 requests left in the queue
#2
/purchases] DEBUG: ℹ️ StoreKit1Wrapper (0x0000000283f25e60) updatedTransaction: com.fz.boosterpack_1year 2000000415082617 1
aattribution] DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: 08ead447-276d-49c7-ba55-2f2f56e9602c
npurchases] DEBUG: ℹ️ TransactionPoster: handling transaction '2000000415082617' for product 'com.fz.boosterpack_1year' (date: 2023-09-16 16:50:09 +0000) in Offering 'booster'
Breceipt] DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/3632F651-6CFC-4835-87A2-6B5A13982D92/StoreKit/sandboxReceipt
Bnetwork] VERBOSE: Enqueing network operation 'PostReceiptDataOperation' with cache key: 'PostReceiptDataOperation 08ead447-276d-49c7-ba55-2f2f56e9602c-false-13f0c8842e1c6fe4ce8b5aa1c59fcfa989d1d9891765b79ae606953b5b41682b
-com.fz.boosterpack_1year-229.99-TRY-TUR--1-0-21367882-P1Y---1
-booster-false
--"$attConsentStatus": fSubscriberAttribute] key: $attConsentStatus value: restricted setTime: 2023-09-16 16:50:19 +0000]'
Tnetwork] DEBUG: ℹ️ PostReceiptDataOperation: Started
oreceipt] INFO: ℹ️ Parsing receipt
:receipt] INFO: ℹ️ Receipt parsed successfully
0network] DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt (source: 'purchase') (note: the contents might not be up-to-date, but it will be refreshed with Apple's servers):
{"opaque_value":"wUQaPsSBdGg6Ch9MSnHPNA==","original_application_version":"1.0","bundle_id":"com.fzfz.fz","sha1_hash":"L8C2GQxmsSpPqQVkc4F4Ch4IfTI=","application_version":"232","creation_date":"2023-09-16T16:50:15Z","in_app_purchases":={"product_id":"com.fz.boosterpack_1year","quantity":1,"transaction_id":"2000000415082617","is_in_trial_period":false,"is_in_intro_offer_period":false,"expires_date":"2023-09-16T17:50:09Z","web_order_line_item_id":2000000037084070,"original_purchase_date":"2023-09-16T16:50:14Z","original_transaction_id":"2000000415082617","product_type":3,"purchase_date":"2023-09-16T16:50:09Z"}]}
_network] DEBUG: ℹ️ There are no requests currently running, starting request POST /v1/receipts
aetags] VERBOSE: Found no etag for request to 'https://api.revenuecat.com/v1/receipts'
/network] DEBUG: ℹ️ API request started: POST '/v1/receipts'
purchases] DEBUG: ℹ️ StoreKit1Wrapper (0x0000000283f25e60) removedTransaction: com.fz.boosterpack_1year 2000000415082617 1
rpurchases] DEBUG: ℹ️ StoreKit1Wrapper (0x0000000283f25e60) removedTransaction for com.fz.boosterpack_1year but no callbacks to notify
metags] VERBOSE: Storing etag '4c6a9148d46bda6b' for request to 'https://api.revenuecat.com/v1/receipts' (success)
2network] DEBUG: ℹ️ API request completed: POST '/v1/receipts' (200)
scustomer] VERBOSE: Updating CustomerInfo '08ead447-276d-49c7-ba55-2f2f56e9602c' request date: 2023-09-16 16:50:20 +0000
cnetwork] DEBUG: ℹ️ PostReceiptDataOperation: Finished
Snetwork] DEBUG: ℹ️ Serial request done: POST /v1/receipts, 0 requests left in the queue
5purchases] INFO: 💰 Finishing transaction '2000000415082617' for product 'com.fz.boosterpack_1year'