purchases-ios: Purchases.shared.purchase(product: product) completion is not called
- I have updated Purchases SDK to the latest version
- I have read the Contribution Guidelines
- I have searched the Community
- I have read docs.revenuecat.com
- I have searched for existing Github issues
Describe the bug A clear and concise description of what the bug is. The more detail you can provide the faster our team will be able to triage and resolve the issue. Do not remove any of the steps from the template below. If a step is not applicable to your issue, please leave that step empty.
The problem is that Purchases.shared.purchase(product: product) { // This is not called } completion is not called when I purchase the product. In the console it is showing [Purchases] - INFO: 💰 Finishing transaction '2000000313661251' for product 'david.kadlcek.GuessWho.annualAccess' (debug log). I try it on the physical device from Xcode and Testflight, and also on the simulator with ConfigurationStoreKit. (Same problem). UI is not frozen. I think that the subscription on the latest version of the app store is working.
- Environment
- Platform: iOS
- SDK version: 4.17.10
- StoreKit 2 (disabled with
useStoreKit2IfEnabled(false)) (Y/N): N (Not using StoreKit2) - OS version: 16.3.1
- Xcode version: 14.3
- How widespread is the issue. Percentage of devices affected. - I don’t know. I think that my latest version (2 weeks ago) is working on the AppStore, but current version on simulator / physical device from Xcode/Testflight is not working.
- Debug logs that reproduce the issue
2023-04-15 10:49:29.216585+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Configuring SDK using RevenueCat’s UserDefaults suite. 2023-04-15 10:49:29.218776+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: 👤 Identifying App User ID 2023-04-15 10:49:29.402004+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Debug logging enabled 2023-04-15 10:49:29.402080+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ SDK Version - 4.17.10 2023-04-15 10:49:29.402110+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Bundle ID - david.kadlcek.GuessWho 2023-04-15 10:49:29.403969+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ System Version - Version 16.3.1 (Build 20D67) 2023-04-15 10:49:29.404011+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Not using a simulator. 2023-04-15 10:49:29.404035+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: 👤 No initial App User ID 2023-04-15 10:49:29.468838+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ PostAdServicesTokenOperation: Started 2023-04-15 10:49:29.469139+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/adservices_attribution 2023-04-15 10:49:29.479099+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $firebaseAppInstanceId 2023-04-15 10:49:29.481395+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $firebaseAppInstanceId value: 3C23DD90C49F4D2CB50E8692C3C66DF9 setTime: 2023-04-15 08:49:29 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made. 2023-04-15 10:49:29.481806+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/adservices_attribution 2023-04-15 10:49:29.485342+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ No cached Offerings, fetching from network 2023-04-15 10:49:29.711723+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground. 2023-04-15 10:49:29.714061+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive 2023-04-15 10:49:29.714292+0200 GuessWho[11394:2627569] [Purchases] - DEBUG: ℹ️ Network operation ‘GetCustomerInfoOperation’ found with the same cache key ‘GetCustomerInfo…’. Skipping request. 2023-04-15 10:49:29.714642+0200 GuessWho[11394:2627569] [Purchases] - DEBUG: ℹ️ Network operation ‘GetOfferingsOperation’ found with the same cache key ‘GetOfferingsOpe…’. Skipping request. 2023-04-15 10:49:29.715719+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground. 2023-04-15 10:49:29.715918+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating caches 2023-04-15 10:49:29.715960+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ Network operation ‘GetCustomerInfoOperation’ found with the same cache key ‘GetCustomerInfo…’. Skipping request. 2023-04-15 10:49:29.716515+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ Network operation ‘GetOfferingsOperation’ found with the same cache key ‘GetOfferingsOpe…’. Skipping request. 2023-04-15 10:49:30.247941+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/adservices_attribution (200) 2023-04-15 10:49:30.248233+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ AdServices attribution token successfully posted 2023-04-15 10:49:30.248291+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ PostAdServicesTokenOperation: Finished 2023-04-15 10:49:30.248520+0200 GuessWho[11394:2627569] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started 2023-04-15 10:49:30.248585+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Serial request done: POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/adservices_attribution, 0 requests left in the queue 2023-04-15 10:49:30.248737+0200 GuessWho[11394:2627569] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/offerings 2023-04-15 10:49:30.250120+0200 GuessWho[11394:2627569] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/offerings 2023-04-15 10:49:30.364101+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/offerings (200) 2023-04-15 10:49:30.370290+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: [“david.kadlcek.GuessWho.annualAccess”, “david.kadlcek.GuessWho.monthlyAccess”, “david.kadlcek.GuessWho.weeklyAccess”, “david.kadlcek.GuessWho.annualAccessLimited”] 2023-04-15 10:49:30.370414+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Found an existing request for products: [“david.kadlcek.GuessWho.annualAccess”, “david.kadlcek.GuessWho.annualAccessLimited”, “david.kadlcek.GuessWho.weeklyAccess”, “david.kadlcek.GuessWho.monthlyAccess”], appending to completion 2023-04-15 10:49:30.370415+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: [“david.kadlcek.GuessWho.annualAccess”, “david.kadlcek.GuessWho.monthlyAccess”, “david.kadlcek.GuessWho.weeklyAccess”, “david.kadlcek.GuessWho.annualAccessLimited”] 2023-04-15 10:49:30.370478+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Found an existing request for products: [“david.kadlcek.GuessWho.annualAccessLimited”, “david.kadlcek.GuessWho.annualAccess”, “david.kadlcek.GuessWho.monthlyAccess”, “david.kadlcek.GuessWho.weeklyAccess”], appending to completion 2023-04-15 10:49:30.370512+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished 2023-04-15 10:49:30.370586+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/offerings, 0 requests left in the queue 2023-04-15 10:49:30.370707+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Started 2023-04-15 10:49:30.370967+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:30.371908+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:30.418080+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: 😻 Store products request finished 2023-04-15 10:49:30.418091+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: 😻 Store products request received response 2023-04-15 10:49:30.419446+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Package ‘david.kadlcek.GuessWho.annualAccessLimited’ in offering ‘Limited’ has a custom duration. 2023-04-15 10:49:30.419583+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Package ‘david.kadlcek.GuessWho.annualAccessLimited’ in offering ‘Limited’ has a custom duration. 2023-04-15 10:49:30.419648+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ Package ‘david.kadlcek.GuessWho.annualAccessLimited’ in offering ‘Limited’ has a custom duration. 2023-04-15 10:49:30.429989+0200 GuessWho[11394:2627273] [Purchases] - WARN: 🍎‼️ Unable to load receipt, ensure you are logged in to a valid Apple account. 2023-04-15 10:49:30.430078+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: [“david.kadlcek.GuessWho.annualAccess”, “david.kadlcek.GuessWho.annualAccessLimited”, “david.kadlcek.GuessWho.weeklyAccess”, “david.kadlcek.GuessWho.monthlyAccess”] 2023-04-15 10:49:30.518601+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd (200) 2023-04-15 10:49:30.528390+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate. 2023-04-15 10:49:30.528473+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: 😻 CustomerInfo updated from network. 2023-04-15 10:49:30.528497+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache. 2023-04-15 10:49:30.529130+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: 😻 CustomerInfo updated from network. 2023-04-15 10:49:30.529605+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: 😻 CustomerInfo updated from network. 2023-04-15 10:49:30.529656+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished 2023-04-15 10:49:30.529754+0200 GuessWho[11394:2627543] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd, 0 requests left in the queue 2023-04-15 10:49:30.529761+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Started 2023-04-15 10:49:30.529880+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/attributes 2023-04-15 10:49:30.533749+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/attributes 2023-04-15 10:49:30.810505+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/attributes (200) 2023-04-15 10:49:30.811137+0200 GuessWho[11394:2627541] [Purchases] - INFO: ℹ️ Marking attributes as synced for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd: 2023-04-15 10:49:30.811247+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ Found 1 unsynced attributes for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:30.811349+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ Unsynced attributes: [“$firebaseAppInstanceId”: [SubscriberAttribute] key: $firebaseAppInstanceId value: 3C23DD90C49F4D2CB50E8692C3C66DF9 setTime: 2023-04-15 08:49:29 +0000] 2627541] [Purchases] - DEBUG: 😻 Subscriber attributes synced successfully for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:30.811768+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Finished 2023-04-15 10:49:30.811912+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ Serial request done: POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/attributes, 0 requests left in the queue 2023-04-15 10:49:30.812072+0200 GuessWho[11394:2627544] [Purchases] - DEBUG: ℹ️ GetIntroEligibilityOperation: Started 2023-04-15 10:49:30.812181+0200 GuessWho[11394:2627544] [Purchases] - WARN: 🍎‼️ App running on sandbox without a receipt file. Unable to determine into eligibility unless you’ve purchased before and there is a receipt available. 2023-04-15 10:49:30.812252+0200 GuessWho[11394:2627544] [Purchases] - DEBUG: ℹ️ GetIntroEligibilityOperation: Finished ] [Purchases] - DEBUG: ℹ️ Caching trial or intro eligibility for products: [“david.kadlcek.GuessWho.weeklyAccess”, “david.kadlcek.GuessWho.monthlyAccess”] 2023-04-15 10:49:30.812428+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Started 2023-04-15 10:49:30.812505+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/attributes 2023-04-15 10:49:30.813661+0200 GuessWho[11394:2627541] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/attributes 2023-04-15 10:49:31.084091+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/subscribers/$RCAnonymousID:480b49d4543f45148f3b7b111243e5fd/attributes (200) 2023-04-15 10:49:31.084362+0200 GuessWho[11394:2627539] [Purchases] - INFO: ℹ️ Marking attributes as synced for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd: 2023-04-15 10:49:31.084805+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:31.084982+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: 😻 Subscriber attributes synced successfully for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:49:31.085135+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Finished 2023-04-15 10:49:31.085467+0200 GuessWho[11394:2627539] [Purchases] - DEBUG: ℹ️ Serial request done: POST subscribers/$RCAnonymousID%3A480b49d4543f45148f3b7b111243e5fd/attributes, 0 requests left in the queue 2023-04-15 10:49:32.252154+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive 2023-04-15 10:49:36.657493+0200 GuessWho[11394:2627273] [Purchases] - INFO: 💰 Purchasing Product ‘david.kadlcek.GuessWho.annualAccess’ 2023-04-15 10:49:36.666244+0200 GuessWho[11394:2627570] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000000281cd8060) updatedTransaction: david.kadlcek.GuessWho.annualAccess 0 2023-04-15 10:50:03.873546+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive 2023-04-15 10:50:17.900322+0200 GuessWho[11394:2627963] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000000281cd8060) updatedTransaction: david.kadlcek.GuessWho.annualAccess 2000000313661188 1 2023-04-15 10:50:17.914122+0200 GuessWho[11394:2627963] [Purchases] - DEBUG: ℹ️ Force refreshing the receipt to get latest transactions from Apple. 2023-04-15 10:50:17.914254+0200 GuessWho[11394:2627963] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest started 2023-04-15 10:50:17.944654+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive 2023-04-15 10:50:18.836321+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000000281cd8060) removedTransaction: david.kadlcek.GuessWho.annualAccess 2000000313661188 1 2023-04-15 10:50:18.879267+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished 2023-04-15 10:50:18.879829+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/B41177A3-9F63-4C5D-B8AF-1F0FA9C64437/StoreKit/sandboxReceipt 2023-04-15 10:50:18.879988+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: [“david.kadlcek.GuessWho.annualAccess”] 2023-04-15 10:50:18.881037+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:50:18.891614+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Started 2023-04-15 10:50:18.891840+0200 GuessWho[11394:2627572] [Purchases] - INFO: ℹ️ Parsing receipt 2023-04-15 10:50:18.895865+0200 GuessWho[11394:2627572] [Purchases] - INFO: ℹ️ Receipt parsed successfully 2023-04-15 10:50:18.897704+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt (note: the contents might not be up-to-date, but it will be refreshed with Apple’s servers): 2023-04-15 10:50:18.897887+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts 2023-04-15 10:50:18.901105+0200 GuessWho[11394:2627572] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts 2023-04-15 10:50:20.101315+0200 GuessWho[11394:2628170] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/receipts (200) 2023-04-15 10:50:20.115049+0200 GuessWho[11394:2628170] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Finished 2023-04-15 10:50:20.115380+0200 GuessWho[11394:2628170] [Purchases] - DEBUG: ℹ️ Serial request done: POST receipts, 0 requests left in the queue 2023-04-15 10:50:20.124383+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Sending updated CustomerInfo to delegate. 2023-04-15 10:50:20.124532+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache. 2023-04-15 10:50:20.124634+0200 GuessWho[11394:2627273] [Purchases] - INFO: 💰 Finishing transaction ‘2000000313661188’ for product ‘david.kadlcek.GuessWho.annualAccess’ 2023-04-15 10:51:23.400894+0200 GuessWho[11394:2628222] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000000281cd8060) updatedTransaction: david.kadlcek.GuessWho.annualAccess 2000000313661251 2000000313661188 1 2023-04-15 10:51:23.415146+0200 GuessWho[11394:2628222] [Purchases] - DEBUG: ℹ️ Force refreshing the receipt to get latest transactions from Apple. 2023-04-15 10:51:23.415275+0200 GuessWho[11394:2628222] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest started 2023-04-15 10:51:23.422926+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished 2023-04-15 10:51:23.423360+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///private/var/mobile/Containers/Data/Application/B41177A3-9F63-4C5D-B8AF-1F0FA9C64437/StoreKit/sandboxReceipt 2023-04-15 10:51:23.423459+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: [“david.kadlcek.GuessWho.annualAccess”] 2023-04-15 10:51:23.423769+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:480b49d4543f45148f3b7b111243e5fd 2023-04-15 10:51:23.424196+0200 GuessWho[11394:2628739] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Started 2023-04-15 10:51:23.424309+0200 GuessWho[11394:2628739] [Purchases] - INFO: ℹ️ Parsing receipt 2023-04-15 10:51:23.427448+0200 GuessWho[11394:2628739] [Purchases] - INFO: ℹ️ Receipt parsed successfully 2023-04-15 10:51:23.427875+0200 GuessWho[11394:2628739] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt (note: the contents might not be up-to-date, but it will be refreshed with Apple’s servers): 2023-04-15 10:51:23.428186+0200 GuessWho[11394:2628739] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts 2023-04-15 10:51:23.429408+0200 GuessWho[11394:2628739] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts 2023-04-15 10:51:24.009370+0200 GuessWho[11394:2628738] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000000281cd8060) removedTransaction: david.kadlcek.GuessWho.annualAccess 2000000313661251 2000000313661188 1 2023-04-15 10:51:24.491746+0200 GuessWho[11394:2628738] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/receipts (200) 2023-04-15 10:51:24.496787+0200 GuessWho[11394:2628738] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Finished 2023-04-15 10:51:24.497148+0200 GuessWho[11394:2628738] [Purchases] - DEBUG: ℹ️ Serial request done: POST receipts, 0 requests left in the queue 2023-04-15 10:51:24.501050+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Sending updated CustomerInfo to delegate. 2023-04-15 10:51:24.501237+0200 GuessWho[11394:2627273] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache. 2023-04-15 10:51:24.501374+0200 GuessWho[11394:2627273] [Purchases] - INFO: 💰 Finishing transaction ‘2000000313661251’ for product ‘david.kadlcek.GuessWho.annualAccess’
- Steps to reproduce, with a description of expected vs. actual behavior
- On physical/simulator just clicked to subscribe. Apple bottom sheet appears. Then clicked on purchase button. Alert appeared that purchased was successful but there is still loading activity indicator because
Purchases.shared.purchasecompletion handler is not called
- Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)
Additional context No additional context
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 2
- Comments: 37 (18 by maintainers)
Commits related to this issue
- `StoreKit1Wrapper`: added debug when transaction is removed but no callbacks to notify This would make issues like #2415 easier to debug. — committed to RevenueCat/purchases-ios by NachoSoto a year ago
- `StoreKit1Wrapper`: added debug log when transaction is removed but no callbacks to notify (#2418) This would make issues like #2415 easier to debug. — committed to RevenueCat/purchases-ios by NachoSoto a year ago
- `StoreKit1Wrapper`: added log when adding payment to queue This might help debug #2415. — committed to RevenueCat/purchases-ios by NachoSoto a year ago
- `StoreKit1Wrapper`: added debug log when transaction is removed but no callbacks to notify (#2418) This would make issues like #2415 easier to debug. — committed to RevenueCat/purchases-ios by NachoSoto a year ago
- `StoreKit1Wrapper`: added debug log for duplicate `finishTransaction` calls Just a small addition that might help debug #2415. — committed to RevenueCat/purchases-ios by NachoSoto a year ago
@DavidKadlcek and I just had a call and looked through the issue together. We found out that the root of the problem was https://github.com/bizz84/SwiftyStoreKit and how it was set up.
SwiftStoreKitwas also callingfinishTransaction:.@Tibbs @emissarman can you let us know if you’re also using that framework or other
StoreKitpackages?Suggested solutions:
RevenueCatinstead of having multiple dependencies handlingStoreKittransaction updates. We have a nice guide to help you do that: https://www.revenuecat.com/docs/swiftystorekitfinishTransactions. Specifically,SwiftyStoreKitsuggests callingcompleteTransactionsand inside the closure callingfinishTransactions. In order forRevenueCat’s SDK to work, you’d have to remove that code and letRevenueCathandle the transactions automatically:I’ll mark this bug as completed, but let us know if you still need help with this.
Hello, @NachoSoto Any update on this issue? It’s still present, checked 4.19.1 and 4.20.0
I had the same issue a few months ago when I updated my app. My workaround was to go back to 4.16.0