I thought I had a pretty solid grasp of what "building apps with AI" looked like. But when I upgraded to Rork Max and tackled a real monetization project, it opened up a much deeper world than I expected. Here's an honest account of that experience — the wins, the stumbling blocks, and the lessons I took away.
What I Built
The app is a simple iOS habit tracker with an AI coach feature. Users log their daily habits, and after three consecutive days of progress, the AI sends an encouraging message. The free tier covers the core functionality, while a monthly subscription unlocks weekly AI-generated progress reports.
Nothing groundbreaking in terms of concept — the real goal was to see how far Rork Max could carry a monetized app from idea to the App Store.
Subscription Design: Front-Load Your Monetization in the Prompt
If you've spent time with Rork, you've probably noticed that adding major features retroactively can throw off the internal consistency of the generated code. The biggest lesson I learned: include your monetization model in the very first prompt.
Here's roughly how I structured it:
App name: HabitBoost
Features:
- Free: Up to 5 habits, daily check-ins
- Pro (monthly): Unlimited habits, weekly AI report, data export
Payments:
- Subscription via RevenueCat + native StoreKit 2
- Show gated UI (blur + upgrade button) for non-subscribers
The key detail here was naming RevenueCat explicitly. Rork Max can integrate third-party Swift packages, and specifying the library by name produced far more accurate code than a vague instruction like "add a subscription feature." Being concrete pays off.
Prompt Design Challenges
Consistent Permission Checks Across Screens
The initial generated code missed subscription checks on a couple of screens. Managing auth state across multiple views is inherently complex, even for a capable model.
My fix was simple: I added a single rule to my follow-up prompt — "At the top of every Pro-gated screen, check the RevenueCat subscription status and present PaywallView if the user is not subscribed." That one line dramatically improved consistency.
Always Use Placeholders for API Keys
This is worth emphasizing. Never write your actual RevenueCat API key into a prompt or leave it in the generated code as a literal string. Use YOUR_REVENUECAT_API_KEY as a placeholder and substitute the real value locally before pushing to GitHub. Secret scanning tools will flag real key patterns if they make it into your repository.
Xcode Export and Final Tweaks
Rork Max exports a full Xcode project. After the export, I handled three things manually:
1. Enabling In-App Purchase in Signing & Capabilities
This capability needs to be toggled on in Xcode — it's not something Rork sets automatically. A quick click in the project settings, but easy to overlook.
2. Swapping in the Real RevenueCat Key
The placeholder I mentioned earlier. The initialization code was already in place (in the @main entry point), so it was just a matter of replacing the placeholder string.
3. Configuring Products in App Store Connect
Setting up the subscription product itself is fully manual — this is outside Rork's scope. I used RevenueCat's dashboard to sync the product configuration, which made the ongoing management much easier.
App Store Review: Two Rejections
My first submission came back with two rejections.
Rejection 1: Unclear Subscription Terms UI
The subscription price and renewal terms were displayed in small text, which didn't meet Apple's disclosure requirements. The guideline here is stricter than it looks: price, billing period, and cancellation instructions need to be clearly visible. I re-prompted Rork with "display subscription terms in a format compliant with Apple's subscription guidelines," and the regenerated UI passed.
Rejection 2: Sandbox API Key in the Release Build
I had forgotten to switch the RevenueCat key from Sandbox to Production for the release configuration. I had Rork generate conditional logic using #if DEBUG / #if RELEASE to handle the key swap automatically, then resubmitted.
After those two rounds, the app was approved about ten days after the initial submission.
Honest Reflections
Looking back at the whole experience, the speed at which Rork Max can scaffold a monetized app is genuinely remarkable. Getting a habit tracker with subscription logic to a working state in a few hours — compared to building it from scratch in Swift — still feels almost surreal.
That said, the final 20% — review compliance, API key management, certificate configuration — still requires hands-on knowledge. My honest framing right now: Rork Max handles roughly 80% of the work, and I handle the remaining 20% with care. That ratio feels about right, and I expect the 80% figure to keep growing.
If you're an indie developer thinking about building a monetized app, I hope this account gives you a realistic picture of what to expect. Feel free to reach out if you have questions — I'm happy to share more details on any of these steps.
This article is based on the author's personal experience. RevenueCat and App Store policies are subject to change — please refer to the latest official documentation when building your own app.