Search results for

“restore purchases”

22,104 results found

Post

Replies

Boosts

Views

Activity

Reply to Unfinished transactions not being emitted on start of app
I am experiencing this exact same issue as well. Subscription renewals that happen when the app is not running are not presented to my app on launch through Transaction.updates. They remain in an unfinished state. Attempting to Restore Purchases does nothing, and attempting to repurchase the subscription just presents the alert that the item has already been purchased. In both cases, current entitlements never reflect that the subscription is purchased and valid.
Topic: App & System Services SubTopic: StoreKit Tags:
Mar ’23
Reply to do In-App Purchases require a login?
The need to copy and restore purchases to all devices owned by the user (including the original device if the app is deleted and reinstalled) varies with the type of iap product. In most cases storing the purchase information in the user's iCloud Account is one approach. With the exception of non-renewing subscriptions, all you need to do is implement restoreCompletedTransactions.
May ’16
Reply to Receipt missing older non-consumable IAPs
Same issue, sandbox environment. All goes well up until restoring purchases, after that all non-consumables are wiped out from the receipt, although I get them in paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) observer method when restoring. I was hoping to rely on receipt as the source of truth but it turns out sadly I can't do that
Topic: App & System Services SubTopic: StoreKit Tags:
Dec ’20
Reply to Why Non-Consumable product has originalTransactionId?
When a user clicks on restoreCompletedTransactions, a new transaction ID is generated. Does the server receive any notification regarding this? Assuming that when the user initially made a purchase, the client passed the appAccountToken field, the server can associate the purchase with the app store transaction using the appAccountToken after a successful purchase. However, when the user clicks to restore purchases on another device, does the app store send a server notification like it does for ONE_TIME_CHARGE after the purchased item is restored? If no notification is sent, is the server only able to validate whether the purchase has been completed by relying on the new transaction ID received from the client?
Topic: App & System Services SubTopic: StoreKit Tags:
Oct ’24
Reply to Are in-app purchase receipts included in the App Store receipt on initial install on a new device?
@endecotp I'm not sure why they recommend a server side approach to proactively restore in app purchases since that can be affected by network conditions if the receipt includes previous app purchases on initial install. Would be nice to know officially if this is the case or not. There may be some odd corner-cases where you don’t, so do have a “restore purchases” button. Indeed I do have a restore in app purchase button. Back when iTunes backups included apps I assume the receipt would need to be refreshed when installed on a new device. I assume this is still true if the the user installs the app using third party backup software instead of downloading from the App Store.
Topic: App & System Services SubTopic: StoreKit Tags:
Jun ’22
Reply to WatchKit - Check in-app purchase made on iOS
Regarding 1)I'm already communicating upon purchase (on iOS) to the Apple Watch the pro version was purchased using updateContext and on Apple Watch I'm setting the NSUserDefault to true. My concern is that when the user deleted the Apple Watch app, their Apple Watch userDefaults go too. therefore the user will need to restore purchases on their iOS device to trigger the updateContext again. I get the status and go a full restore of the IAPs when the user clicks the restore button on their iOS app. But thats not the point. What if the user deletes just the Apple Watch app, he still needs to restore on iOS for the app to communicate with the Apple WAtch
Topic: App & System Services SubTopic: General Tags:
Oct ’15
iOS-App-On-Mac app unable to restore purchases or IAP receipt due to file permission issue
Hello! I found that on the latest macOS 13 Ventura, my iOS app (iOS-App-On-Mac-With-M1/M2-Chip) is not able to restore IAP purchases or refresh receipt anymore. When using SKReceiptRefreshRequest() to refresh the IAP receipt, I got following error. Error Domain=SKErrorDomain Code=0 An unknown error occurred UserInfo={ NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x1330c1840 { Error Domain=ASDErrorDomain Code=500 (null) UserInfo={ NSUnderlyingError=0x13338ebf0 { Error Domain=NSCocoaErrorDomain Code=513 You don’t have permission to save the file “receipt” in the folder “StoreKit”. UserInfo={ NSFilePath=/Users/***/Library/Containers/EC7E888F-3388-418A-92C5-9CBDDC4A1846/Data/StoreKit/receipt, NSUnderlyingError=0x13333a790 { Error Domain=NSPOSIXErrorDomain Code=1 Operation not permitted } } } } } } It seems that the receipt cannot be refreshed due to a file permission issue. Also, the SKPaymentQueue.default().restoreCompletedTransactions() function does not get the purchases
6
0
2.1k
Nov ’22
Error on some devices when restoring InApp purchases.
I have the following problem and I'm stuck.For most users, buying and restoring works without problems.Still, I have a problem with about one in a hundred users that the purchase was not recognized, but was billed. For these users, the purchase was not unlocked. Users can not restore the purchase to the device where the purchase was made. However, these users can use the restore purchases feature on a second device without any problem.The restoration works for me currently as follows:1. The user call's:- (void)restore{ wantBuy = YES; [self productRequestStop]; SKReceiptRefreshRequest *produkt = [[SKReceiptRefreshRequest alloc] init]; [produkt setDelegate:self]; [produkt start]; }Note:- (void)productRequestStop{ [productsRequest setDelegate:nil]; [productsRequest cancel]; productsRequest = nil; [[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; } // SKProductsRequest *productsRequest; ** at the interface **2.- (void)r
5
0
2.3k
Dec ’17
Reply to Cannot connect to Itunes Store
I have had this problem for months.During the last year, restore purchases has failed for me consistently in TestFlight.For most of the year, purchases or repurchases would frequently fail with the cannot connect to iTunes Store message on the first try.For the last 2 months or so, I have reached a point of consistency: certain products can never be purchased by me and certain products can always be purchased by me. Other TestFlight users of our app report a similar experience except that the products that work and the products that fail are different.
May ’18
Reply to How can I check the orders from my app's users?
That Order ID endpoint is documented here: https://developer.apple.com/documentation/appstoreserverapi/look_up_order_id Specifically if a customer is not able to access their purchase you can ask them to provide their orderID. Customers can find this in their purchase history and typically they receive an email for their purchase. Doc above has info on where customers can retrieve this order ID. Lastly if a customer provides this to you, you can verify if that Apple ID has a purchase for your app. If so you can verify that transaction is in your system and what account in your system it is associate with If you verify and confirm they do have a purchase then have the customer verify they are signed in on their device with the same apple Account that made the purchase and have them complete a restore purchases in your app to force your app to re-process the restorable transactions. Ideally this step is unnecessary step if your app is autom
Nov ’24
Reply to Implement "traditional" in-app purchase restore
As mentioned in the Implement proactive in-app purchase restore session, it is recommended to continue providing a “Restore Purchases” button within your app. While not used often, it does give customers an opportunity to force an app to restore their Apple ID’s transactions in case of an issue or if the customer uses a different Apple ID. When your app first proactively restores a customer’s in-app purchases on a device, it’s recommended to optimize your app and store data securely to assist in determining customer product state. CloudKit is a feature to consider with its flexibility, security, and ability to sync across a customer’s devices. Testing your implementation is critical when using StoreKit. And with StoreKit 2, you can test your proactive restore implementation with Sandbox, TestFlight and Xcode StoreKit testing.
Topic: App & System Services SubTopic: StoreKit Tags:
Sep ’22
Reply to StoreKit2 verification fail after app update
Hello, I am experiencing the same behaviour. I was previously just parsing the receipt and users had no problem. Now I use StoreKit2 and users with previously valid purchases after updating to new app version have to make a restore purchase (AppStore.sync()) otherwise, they don't get their purchases. Is there any resolution to this issue? I don't want to force all my users to press the restore button. Can I simply handle unverified transactions in the same way as verified ones? I don't care about jailbroken devices and I never learned anywhere what are those unverified transactions. Thank you!
Topic: App & System Services SubTopic: StoreKit Tags:
Sep ’23
Reply to Auto-Renewal Problem - Receipt not be updated
Following please help to check the log for restoring purchases:🚹 User Call: Restore Purchases------------ Transactions -------------✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:50✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:45✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:40✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:35------------ Receipts and State -------------⚠ com.****.monthly (2018-08-20 13:35 --> 2018-08-20 13:40)⚙ Subscription State: ⚠ expired (2018-08-20 13:40)=====================- After restore purchases, there are 4 transactions received, one is the purchase transaction, another 3 are renewal transactions.- But the problem is: After finishTransaction be called, then to validate the receipt in the app bundle, only the first transaction in the receipt.What works correctly:- If to purchase a prod
Topic: App & System Services SubTopic: StoreKit Tags:
Aug ’18
Reply to Unfinished transactions not being emitted on start of app
I am experiencing this exact same issue as well. Subscription renewals that happen when the app is not running are not presented to my app on launch through Transaction.updates. They remain in an unfinished state. Attempting to Restore Purchases does nothing, and attempting to repurchase the subscription just presents the alert that the item has already been purchased. In both cases, current entitlements never reflect that the subscription is purchased and valid.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Mar ’23
Reply to do In-App Purchases require a login?
The need to copy and restore purchases to all devices owned by the user (including the original device if the app is deleted and reinstalled) varies with the type of iap product. In most cases storing the purchase information in the user's iCloud Account is one approach. With the exception of non-renewing subscriptions, all you need to do is implement restoreCompletedTransactions.
Replies
Boosts
Views
Activity
May ’16
Reply to Receipt missing older non-consumable IAPs
Same issue, sandbox environment. All goes well up until restoring purchases, after that all non-consumables are wiped out from the receipt, although I get them in paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) observer method when restoring. I was hoping to rely on receipt as the source of truth but it turns out sadly I can't do that
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Dec ’20
Reply to Why Non-Consumable product has originalTransactionId?
When a user clicks on restoreCompletedTransactions, a new transaction ID is generated. Does the server receive any notification regarding this? Assuming that when the user initially made a purchase, the client passed the appAccountToken field, the server can associate the purchase with the app store transaction using the appAccountToken after a successful purchase. However, when the user clicks to restore purchases on another device, does the app store send a server notification like it does for ONE_TIME_CHARGE after the purchased item is restored? If no notification is sent, is the server only able to validate whether the purchase has been completed by relying on the new transaction ID received from the client?
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Oct ’24
Reply to Are in-app purchase receipts included in the App Store receipt on initial install on a new device?
@endecotp I'm not sure why they recommend a server side approach to proactively restore in app purchases since that can be affected by network conditions if the receipt includes previous app purchases on initial install. Would be nice to know officially if this is the case or not. There may be some odd corner-cases where you don’t, so do have a “restore purchases” button. Indeed I do have a restore in app purchase button. Back when iTunes backups included apps I assume the receipt would need to be refreshed when installed on a new device. I assume this is still true if the the user installs the app using third party backup software instead of downloading from the App Store.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to WatchKit - Check in-app purchase made on iOS
Regarding 1)I'm already communicating upon purchase (on iOS) to the Apple Watch the pro version was purchased using updateContext and on Apple Watch I'm setting the NSUserDefault to true. My concern is that when the user deleted the Apple Watch app, their Apple Watch userDefaults go too. therefore the user will need to restore purchases on their iOS device to trigger the updateContext again. I get the status and go a full restore of the IAPs when the user clicks the restore button on their iOS app. But thats not the point. What if the user deletes just the Apple Watch app, he still needs to restore on iOS for the app to communicate with the Apple WAtch
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Oct ’15
Reply to Is restore button still required if we were using StoreKit2 Transaction.currentEntitlements
Yes, AppStore.sync() - https://developer.apple.com/documentation/storekit/appstore/3791906-sync/ Providing a Restore Purchases button is still required per guidelines. As it requires customer authentication, this also gives customers a chance to verify the Apple ID signed in, or to sign-in with one if they were not already.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Apr ’22
Reply to iOS15 BETA + SKProductsRequest Empty/Fail
I am seeing the same issue on iPadOS 15. Fails to return products or restore purchases. This seems to be specific to auto-renewing subscriptions. Rebooting the iPad allows it to work the first time, then fails with no results after that. No issues with code on iOS 14. FB9650399.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Sep ’21
iOS-App-On-Mac app unable to restore purchases or IAP receipt due to file permission issue
Hello! I found that on the latest macOS 13 Ventura, my iOS app (iOS-App-On-Mac-With-M1/M2-Chip) is not able to restore IAP purchases or refresh receipt anymore. When using SKReceiptRefreshRequest() to refresh the IAP receipt, I got following error. Error Domain=SKErrorDomain Code=0 An unknown error occurred UserInfo={ NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x1330c1840 { Error Domain=ASDErrorDomain Code=500 (null) UserInfo={ NSUnderlyingError=0x13338ebf0 { Error Domain=NSCocoaErrorDomain Code=513 You don’t have permission to save the file “receipt” in the folder “StoreKit”. UserInfo={ NSFilePath=/Users/***/Library/Containers/EC7E888F-3388-418A-92C5-9CBDDC4A1846/Data/StoreKit/receipt, NSUnderlyingError=0x13333a790 { Error Domain=NSPOSIXErrorDomain Code=1 Operation not permitted } } } } } } It seems that the receipt cannot be refreshed due to a file permission issue. Also, the SKPaymentQueue.default().restoreCompletedTransactions() function does not get the purchases
Replies
6
Boosts
0
Views
2.1k
Activity
Nov ’22
Error on some devices when restoring InApp purchases.
I have the following problem and I'm stuck.For most users, buying and restoring works without problems.Still, I have a problem with about one in a hundred users that the purchase was not recognized, but was billed. For these users, the purchase was not unlocked. Users can not restore the purchase to the device where the purchase was made. However, these users can use the restore purchases feature on a second device without any problem.The restoration works for me currently as follows:1. The user call's:- (void)restore{ wantBuy = YES; [self productRequestStop]; SKReceiptRefreshRequest *produkt = [[SKReceiptRefreshRequest alloc] init]; [produkt setDelegate:self]; [produkt start]; }Note:- (void)productRequestStop{ [productsRequest setDelegate:nil]; [productsRequest cancel]; productsRequest = nil; [[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; } // SKProductsRequest *productsRequest; ** at the interface **2.- (void)r
Replies
5
Boosts
0
Views
2.3k
Activity
Dec ’17
Reply to Cannot connect to Itunes Store
I have had this problem for months.During the last year, restore purchases has failed for me consistently in TestFlight.For most of the year, purchases or repurchases would frequently fail with the cannot connect to iTunes Store message on the first try.For the last 2 months or so, I have reached a point of consistency: certain products can never be purchased by me and certain products can always be purchased by me. Other TestFlight users of our app report a similar experience except that the products that work and the products that fail are different.
Replies
Boosts
Views
Activity
May ’18
Reply to How can I check the orders from my app's users?
That Order ID endpoint is documented here: https://developer.apple.com/documentation/appstoreserverapi/look_up_order_id Specifically if a customer is not able to access their purchase you can ask them to provide their orderID. Customers can find this in their purchase history and typically they receive an email for their purchase. Doc above has info on where customers can retrieve this order ID. Lastly if a customer provides this to you, you can verify if that Apple ID has a purchase for your app. If so you can verify that transaction is in your system and what account in your system it is associate with If you verify and confirm they do have a purchase then have the customer verify they are signed in on their device with the same apple Account that made the purchase and have them complete a restore purchases in your app to force your app to re-process the restorable transactions. Ideally this step is unnecessary step if your app is autom
Replies
Boosts
Views
Activity
Nov ’24
Reply to Implement "traditional" in-app purchase restore
As mentioned in the Implement proactive in-app purchase restore session, it is recommended to continue providing a “Restore Purchases” button within your app. While not used often, it does give customers an opportunity to force an app to restore their Apple ID’s transactions in case of an issue or if the customer uses a different Apple ID. When your app first proactively restores a customer’s in-app purchases on a device, it’s recommended to optimize your app and store data securely to assist in determining customer product state. CloudKit is a feature to consider with its flexibility, security, and ability to sync across a customer’s devices. Testing your implementation is critical when using StoreKit. And with StoreKit 2, you can test your proactive restore implementation with Sandbox, TestFlight and Xcode StoreKit testing.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Sep ’22
Reply to StoreKit2 verification fail after app update
Hello, I am experiencing the same behaviour. I was previously just parsing the receipt and users had no problem. Now I use StoreKit2 and users with previously valid purchases after updating to new app version have to make a restore purchase (AppStore.sync()) otherwise, they don't get their purchases. Is there any resolution to this issue? I don't want to force all my users to press the restore button. Can I simply handle unverified transactions in the same way as verified ones? I don't care about jailbroken devices and I never learned anywhere what are those unverified transactions. Thank you!
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to Auto-Renewal Problem - Receipt not be updated
Following please help to check the log for restoring purchases:🚹 User Call: Restore Purchases------------ Transactions -------------✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:50✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:45✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:40✉ User purchased product. com.****.monthly. Transaction date: 2018-08-20 13:35------------ Receipts and State -------------⚠ com.****.monthly (2018-08-20 13:35 --> 2018-08-20 13:40)⚙ Subscription State: ⚠ expired (2018-08-20 13:40)=====================- After restore purchases, there are 4 transactions received, one is the purchase transaction, another 3 are renewal transactions.- But the problem is: After finishTransaction be called, then to validate the receipt in the app bundle, only the first transaction in the receipt.What works correctly:- If to purchase a prod
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Aug ’18