In-App Purchase

RSS for tag

Offer extra content, digital goods, and features directly within your app using in-app purchases.

Posts under In-App Purchase tag

200 Posts

Post

Replies

Boosts

Views

Activity

Free trial for one-time purchase: Is the $0 IAP workaround still recommended in 2026?
I have a $4 USD, one-time-purchase app (Dash Calc) and sales have been rough. In a crowded category, an paid-upfront app feels like a tough sell without a way to try it first. I’d like to offer a simple 7-day free trial followed by a single lifetime purchase, but App Store Connect still doesn’t officially support trials for paid apps. In Jan 2023, an App Store Commerce Engineer recommended the $0 non-consumable IAP + paid non-consumable IAP workaround: https://developer.apple.com/forums/thread/722874 I haven’t implemented it yet, but the subsequent discussion suggests the approach is overly complex. Handling refunds, reinstalls, activation timing, and purchase history requires non-obvious logic, and some developers report customer confusion and drop-off when presented with a $0 trial IAP. Has anything improved since 2023? Any new StoreKit APIs or App Store Connect changes that make this simpler or less error-prone? Is the $0 non-consumable IAP still the recommended approach in 2026? Any updated guidance for time-limited access on one-time purchases? I’m happy to use the workaround if it’s still the official path—I just want to confirm there isn’t a better option now.
1
0
97
6h
Advanced Commerce (Sandbox) – Generic Product Still “Ready to Submit”
Hello, Our app is approved for the Advanced Commerce API and we are currently testing in the Sandbox environment only. We have created generic product identifiers and have already submitted them via the Advanced Commerce API Access form. However, the generic product status in App Store Connect is still “Ready to Submit.” For Sandbox testing, is this status expected, or do we need to submit an app build or the generic product for review before Advanced Commerce works correctly? Thank you.
0
0
59
1d
IAP not available on iOS but on Mac Catalyst (Invalid IAP ID)
After adding furhter IAP Items to my app, none of the products are available for purchase an more on iOS. But it works just fine on the Mac Catalyst app. Logging the request shows that all product IAP IDs are "invalid", even those who already were on sale. Any idea what this can be caused by? Ive already double checked the obvious things like the product IDs on appstoreconnect, bundle ID, tested on different devices, Test Flight etc... Has anyone experienced this already?
0
0
61
2d
Billing Problem while subscription renewal.
Hello, I'm currently experiencing issues with IAP subscription setup. The following error appears: "Billing Problem, There was a problem with your subscription renewal. To resolve, turn on Allow Purchases & Renewals, or leave off to test failed in-app purchase attempts and subscription renewals." I'm testing with a sandbox account, and automatic subscription renewal is turned on in the sandbox settings. A notification screen appears at the OS level, and consequently, a DID_FAIL_TO_RENEW error occurs on our payment server. I cannot determine the cause at all, so I would appreciate your assistance in checking this issue.
21
15
1.4k
5d
Subscription Group Remains as Prepare for Submission
I'm ready to submit a new app with 3 subscription plans. But the status of the group remains 'Prepare for Submission.' And it won't change. All the individual subscription plans have the 'Ready to Submit' status. I have triple-checked individual plans to see if there is anything missing. No. Nothing is missing. There are no pending business contracts to review, either. I have even deleted an existing group and created a whole new subscription group. And I still end up with this prepare status. Am I the only one having this subscription group difficulty? One thing that I realize is that the status appears as 'Ready to Submit' on individual subscription plans. But their respective localization pair of display name and description get the Prepared status. The display name and the description fields are both filled for all three plans. What a nice, merry, merry Christmas. I don't know what else I can do to resolve this Prepared madness. I've been stuck for 4 hours.
2
1
141
5d
Purchase Intent does not work when app has been launched
I'm implementing PurchaseIntent.intents for App Store in-app purchase promotions, following Apple's WWDC guidance. The API only works on cold launch (killed→launch), but fails on background→foreground transitions, making App Store promotions unusable. Sample code as followed from WWDC23 video "What's new in StoreKit 2 and StoreKit Testing in Xcode". In the StoreKitManager observable class, I have this function which is initialized in a listening task: func listenForPurchaseIntent() -> Task<Void, Error> { return Task { [weak self] in for await purchase in PurchaseIntent.intents { guard let self else { continue } let product = purchase.product await self.purchaseProduct(product) } } } where purchaseProduct() will perform the call to: try await product.purchase() ISSUE: When the app is in background (after previously launched), and the purchase intent is initiated from Xcode Transaction Manager or using the "itms-services://?action=purchaseIntent" method, the system foregrounds my app but the purchase intent is never delivered to the waiting listener. The intent remains queued until the next cold launch (quit app and relaunch app). This could mean that if a user has installed the app, and has run the app, then tapped the promotional IAP from the App Store, the purchase intent will not show up until the next cold launch. If the app is in quit state, then the system will foreground the app, and purchase intent is delivered correctly. STEPS TO REPRODUCE Launch app (listener starts in StoreKitManager.init()) Background app Add purchase intent via Xcode Transaction Manager Foreground app Result: No purchase sheet appears, no intent delivered Workaround attempts: Using this either in a view or the main app: func checkForPurchaseIntents() async { for await purchaseIntent in PurchaseIntent.intents { await storeKit.purchaseProduct(purchaseIntent.product) } } Applied to .onChange(of: scenePhase) - Doesn't work, nothing happens. Using UIApplication.willEnterForegroundNotification - Only works on the first time the app goes from background to foreground when purchase intent is sent. Doesn't work on second time or third time. • Attempting to creating fresh listening task on each foreground - Does not work. The question is: How are we supposed to implement the PurchaseIntent API? I have checked Apple sample projects like BackyardBirds, and sample projects from WWDC on StoreKit 2 but they never implemented Purchase Intent.
0
1
62
6d
HELP! "In-App Purchases and Subscriptions" section unavailable.
I’m attempting to resubmit my app after a few unsuccessful review submissions (first time dealing with this process). Previously, when I resubmitted (the last two times), the “In-App Purchases and Subscriptions” section was available on the version page, and I could select the appropriate IAPs and subscriptions prior to submitting for review. However, on the resubmission attempt, this section is no longer visible anywhere on the version page! I’ve tried several troubleshooting steps, but it still won’t appear. Current status: All IAPs/subscriptions: Waiting for Review App version status: 1.0 Prepare for Submission It has been suggested that I "deleting all my subscriptions and [do] them over again..."; however, this workaround is completely unacceptable! While it may work for unreleased apps, it would be catastrophic for production apps. If this UI bug occurred during a subsequent update, deleting IAPs would permanently invalidate the original product IDs—which cannot be reused. This would break all existing customer purchases! Does anyone know how to get around this?????
5
1
199
6d
how to handle verification step for in-app purchase?
a UK-based user is having trouble completing an in-app purchase. after going through the typical purchase flow (tapping the button to trigger the in-app purchase sheet, completing Face ID) they see this verification sheet appear over my app and have to go to their banking app to approve the purchase. after approving the purchase from their banking app, they tap "Payment confirmed on Mobile App" to close the sheet, but then see an alert that suggests the result is .userCancelled. the purchase does not seem to have completed. the user reports not being charged (despite numerous attempts). plus, i have a "restore purchases" function on App init that would've restored a purchase if it existed. i have implemented what i think is a typical Storekit.purchase() method (again, the message the user sees is for the .userCancelled case): func purchase(productId: String) async -> (Bool, String?) { guard let product = subscriptionProducts.first(where: { $0.id == productId }) else { return (false, "Product not found") } do { let result = try await product.purchase() switch result { case .success(let verification): switch verification { case .verified(let transaction): await transaction.finish() hasSubscription = true return (true, nil) case .unverified: return (false, "Transaction verification failed") } case .userCancelled: return (false, "No worries, take your time. 😌") case .pending: return (false, "Purchase is pending") u/unknown default: return (false, "Error purchasing product. If this keeps happening, please contact [email].") } } catch { return (false, "Error purchasing product: \(error.localizedDescription)") } } has anyone dealt with this issue? i was seeing an unusually high number of .userCancelled purchase events from users outside the US, and i'm wondering if some of them were genuine purchase attempts that were blocked by this verification step. 😕
2
0
78
1w
"In-App Purchases and Subscriptions" missing, WHY????
I am trying to resubmit my app after failing a few times (first time doing this). Anyhow, when resubmitting the last 2 times, the "In-App Purchases and Subscriptions" section was always present on the version page so I could choose my IAP's and Subscriptions before submitting for review. Currently, I am trying to resubmit again, and the "In-App Purchases and Subscriptions" section is nowhere to be found and no matter what I try to do, it's just not showing up. Currently, all my IAP's and Subscriptions have a "Waiting for Review" status and my app status is "1.0 Prepare for Submission". Any ideas how I can get around this???
4
1
339
1w
App Store version stuck in Developer Rejected state, blocking IAP submission
Hello, We are facing an App Store Connect issue that is blocking our release and cannot be resolved from the developer side. Here is the exact situation: iOS app version 1.0 was initially approved together with its associated in-app purchases (auto-renewable subscriptions). We decided not to release that version and manually set version 1.0 to “Developer Rejected”. After that, we made minor optimization fixes and uploaded a new build to App Store Connect. When attempting to submit this new build, the In-App Purchases section no longer appears in the App Store version UI, so we are unable to associate the already approved IAPs with the submission. Additionally, the “New Version” option is not available, so we cannot create a new app version either. As a result, any submission is rejected with the same message stating that the app references in-app purchases that were not submitted for review, even though the IAPs themselves are already approved. We have contacted App Store Connect Support and explained the situation in App Review notes, but we continue to receive the same rejection without any way to resolve the issue through App Store Connect. This appears to be an App Store Connect tooling or version state issue related to a Developer Rejected app version, rather than an in-app purchase configuration problem. Could an Apple staff member please assist by forwarding this to App Store Connect Support or engineering so the affected app version state can be reset or removed, allowing us to associate the approved IAPs and proceed with submission? Thank you for your help.
2
1
155
1w
Stuck in a loop between Guideline 2.1 and 2.2: Reviewer refuses 5 mins of gameplay
Title: Stuck in a loop between Guideline 2.1 and 2.2: Reviewer refuses to play for 5 minutes. Body: I am an independent developer struggling with a repetitive rejection cycle for over a month. I need advice on how to handle a clear contradiction in the review process. The Loop: Initial Rejection (2.1): Reviewer said they couldn't locate the IAP. My Action: I added a prominent "IAP Test" button on the title screen to skip gameplay. Second Rejection (2.2): A different reviewer said the "IAP Test" button is a "Beta feature" and not appropriate for production. My Action: I removed the button and implemented a "Secret Command" (Easter Egg) that enables an "Assist Mode" (extending the timer to 5 minutes) so the reviewer can easily clear the game and reach the IAP screen in about 5-6 minutes. Latest Rejection (2.1): The reviewer now says: "While we appreciate you provide an instruction... we require a quicker way to access in-app purchases without spending significant time to play games." The Current Solution: In my next submission, I am implementing a "Direct Warp" feature. Tapping the title logo 7 times will trigger a secret transition directly to the Ending Scene (IAP screen). The Contradiction & Question: Apple forbids "Test Buttons" (2.2), but now they refuse to spend even 3-5 minutes of gameplay to reach the IAP. I am forced to implement a "Warp" feature just to satisfy the reviewer's convenience. Has anyone else experienced a reviewer refusing to perform 5-6 minutes of gameplay? Is a "Secret Warp" considered a "Beta feature" under 2.2, or is it an acceptable compromise for 2.1? I want to ensure I don't get rejected for 2.2 again.
5
0
238
1w
Guideline confusion: External subscription unlocks features in iOS app — what flow gets approved?
Hi everyone — looking for guidance from developers who’ve dealt with App Review + subscriptions. We’ve submitted our iOS app for review and have been rejected 3 times related to subscriptions / in-app purchase rules. Here’s our setup: We offer a Premium subscription that unlocks extra features in the app. We do NOT allow users to purchase/subscribe inside the iOS app. There is no IAP, no checkout, and no purchase flow in the app. Users can only subscribe outside the app (on our website). If a user already has a Premium account (subscribed on the website), they can log in on iOS and use all Premium features inside the app. To us, this appears similar to what apps like Spotify do: from the iOS app you can’t subscribe to Premium via IAP; they direct users to the website, and once subscribed externally, Premium works inside the app. We’ve shared this context with the review team, but we still haven’t gotten a clear explanation of what specifically is not allowed in our case. My questions to the community: Is this model acceptable under App Store guidelines (no in-app purchase, subscription only on the web, and premium features unlocked after login)? If it is acceptable, what is the recommended way to present this to App Review so the app gets approved? (e.g., specific wording, metadata notes, review notes, removing certain UI, etc.) If it’s not acceptable, what’s the correct approach Apple expects for a Premium subscription that unlocks digital features? Has anyone had a similar rejection and successfully resolved it — what changes or steps worked? Any advice on how to get this approved would be hugely appreciated. See below the example from Spotify app on IOS.
0
0
239
1w
StoreKit Subscription not discoverable in App Review (PLEASE HELP!))
I'm in the final phase before app approval and I'm struggling to implement store kit for in app purchases. I'm using base 44 and really need help finishing this set up. I have an iOS app (SwiftUI + WKWebView) with auto-renewable subscriptions using StoreKit and SubscriptionStoreView. The app was rejected under Guideline 3.1 because payments were defaulting to Stripe instead of storekit. What’s already done: Subscriptions created in App Store Connect (monthly + annual) SubscriptionStoreView implemented and visible in app WKWebView bridge triggers native StoreKit paywall Sandbox test account created Stripe fully disabled on iOS What I need: Verify StoreKit implementation is App Review compliant Confirm subscriptions are correctly attached to the app version Ensure paywall is discoverable by App Review Help me pass App Review (reply guidance + final checks) This is a short engagement (1–3 hours). Looking for someone with real StoreKit + App Review experience + Base44 knowledge.
0
0
34
1w
Apple rejected my app ( again )
Hello everyone, few days back I posted about how apple rejected my build and now after 3 days, they replied back in a very unclear, and I am not being able to understand what they really mean by that. Context :- In my app, when the user clicked on "export" button, it should show the export options, however, if the user is not on a lifetime plan, it should open the "premium" popup / modal to allow them to purchase. Now, this modal loades project based on storekit IN app purchases I added, and locally I tested using the `.storekit` file and everything worked fine. However, before archieveing the build for app store connect, I remove the local file form "edit" scema, and I thought it should load automatically based on the IAP, because I added the IAP to the app build in the console as well. But now, apple responded with this after 3 days :- Issue Description The app exhibited one or more bugs that would negatively impact App Store users. Bug description: "Export" button brings up an empty sheet that seems like a In-App Purchase. (Please see attached screenshot) Next Steps Test the app on supported devices to identify and resolve bugs and stability issues before submitting for review. If you are unable to reproduce the bug, try the following: - For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce. - For app updates, install the new version as an update to the previous version, then follow the steps to reproduce. They are saying that the premium modal is showing empty. However, what am I suppose to do here? Its working as expected, it needs to show the IAP which I already added? Can someone please guide here a bit, I am on a verge of cry, after waiting for 3 days, they replied with no clear answer and probably gonna take another week ( because of weekend tommorow ) and I am not sure what they really mean by that? This is screenshot of loaded modal and without loaded modal :-
1
0
209
2w
Apple ID Password Is Required During In-App Purchase
Hello, I would like to ask about an Apple ID authentication behavior during in-app purchases. Our app uses a StoreKit 1 (SKPaymentQueue-based) implementation, and there are no differences in the in-app purchase logic between the TestFlight build and the App Store production build. However, we have observed that some users are prompted to enter their Apple ID password during in-app purchases. The observed behavior is as follows: On the first in-app purchase, the system prompts for the Apple ID password After the password is entered once, subsequent purchases proceed normally using Face ID (double side-button press) Even after deleting and reinstalling the app, or switching between TestFlight and App Store builds, the password prompt does not reappear if authentication has already occurred This behavior can occur even when the Apple ID already has an active auto-renewable subscription The only confirmed change on our side is: The app is now built with Xcode 26 instead of Xcode 18 Based on this, we are currently considering the following possible causes: A change in purchase authentication behavior due to the Xcode version update Expiration of the Apple ID purchase authentication session after a long period without purchases In addition to these points, we would like to ask: Are there any other common conditions or security policies in iOS or the App Store that may cause the system to require Apple ID password input during in-app purchases? Is this behavior considered expected under certain circumstances? We would appreciate your clarification on whether this is expected system behavior or if there are any implementation aspects we should further review. Thank you for your support.
0
0
59
2w
PayPal integration
Hello, Apologies if this has been asked before but I have a website that takes subscriptions and payments through PayPal. It's a platform where authors can sell ebooks and anyone who purchaes an ebook, the money goes pretty much directly from the buyer's PayPal to the seller PayPal through the use of PayPal Multiparty where my platform acts as a third party that takes a fee. I'm currently building a React-Native app for my website and coming close to needing to integrate payment solutions. As far as I'm aware, Apple only allows Apple Pay payments for IAP and subscriptions? How would this work for my model? Can I integrate PayPal into Apple Pay like I do with my website? If not, what's the alternative?
0
0
121
2w