DEV Community

孫昊
孫昊

Posted on

Day 60: First iOS App Live (NewDaysUntil) — After 2.1(b) IAP Recovery in 90 Minutes

NewDaysUntil just cleared Apple review. Day 60. The first of 4 iOS apps I shipped in 60 days is now live on the App Store.

This is the Day 60 report. Not a victory lap — a raw snapshot of where I actually stand.

What Is NewDaysUntil?

A countdown app. Count down to anything that matters — a birthday, a flight, a product launch, a goal you've set yourself.

  • Home screen and lock screen widgets
  • iCloud sync across iPhone + iPad
  • No ads. No SDK trackers. No subscription required.
  • One-time unlock IAP (lifetime access)

Download on the App Store →

Day 57: All 4 Apps Rejected on the Same Day

On May 5 — Day 57 — Apple rejected all 4 apps. Same reason. Same code. Same day.

2.1(b) App Completeness — In-App Purchases are not visible to reviewers.

For anyone who hasn't hit this: 2.1(b) means Apple's reviewer opened your app, navigated around, never reached your paywall or IAP, and marked your app incomplete. It doesn't mean your IAP is broken. It means the reviewer's path never surfaced it.

All 4 apps. One afternoon.

The 90-Minute Fix

I rebuilt the submission flow from scratch using ASC API V2 — fully programmatic, no App Store Connect UI clicks. Then used browser CDP automation to verify the IAP surfaced correctly in the reviewer's expected navigation flow.

Total time: 90 minutes. NewDaysUntil cleared review 2 days later.

Full breakdown with code: How I Fixed Apple's IAP 2.1(b) App Completeness Rejection in 90 Minutes Using ASC API V2

Key Lessons from 2.1(b)

1. Apple reviewers follow a path, not an exploration.
If your IAP paywall is 3 taps deep and the reviewer only went 2 taps, you're rejected. Design your review flow explicitly.

2. Sandbox account setup matters.
A sandbox tester without the right entitlements sees a broken purchase flow. Use the same test account Apple will use — configure it before submission, not after rejection.

3. ASC API V2 is worth learning.
The UI is slow and opaque. The API gives you full visibility into submission state, IAP linkage, and review history. Related: Day 61 — ASC API V1/V2 Quirks That Wasted My Time.

4. CDP automation for ASC pricing is a force multiplier.
ASC's SPA takes 22–25 seconds to hydrate per page. Automating the 7-step IAP pricing flow via browser CDP cut my setup time from 40+ minutes to 4. Details in Day 62.

60-Day Snapshot (Honest Numbers)

Metric Value
Apps shipped 4
Apps live (approved) 1 (today)
Revenue $0
dev.to articles published 87
Substack subscribers ~600
Apple 2.1(b) rejections 4
Days from rejection to re-approval 2

$0 revenue. That's the number I'm not hiding. The apps are live (or clearing). Monetization is the Day 61+ problem.

What's Next

3 more apps still in review post-re-submission: AltitudeNow, AutoChoice, PromptVault. All re-submitted with the 2.1(b) fix applied.

I'm tracking everything in public. If you're an iOS indie dev fighting Apple review loops, or studying what a real 60-day zero-to-ship arc looks like — including the uncomfortable parts — follow along.


Resources for iOS Indies

Two things I've packaged from this journey:

iOS Indie Survival Kit Bundle — $59
ASC API scripts, CDP automation flows, submission checklist, IAP recovery playbook, 87-article dev.to archive. Everything I actually used.

Free: 14 iOS Rejection Reasons (lead magnet)
The 14 most common Apple rejection codes with exact fix steps. Free download at the same link.


Day 60. One app live. Three in the queue.

NewDaysUntil on the App Store

Top comments (0)