Shaurya's knowledge base(|)
Shaurya WikiFirst App Store Submission

First App Store Submission

Submitting LockIn to the Apple App Store was one of the most frustrating and rewarding experiences of my building journey. The app finally went live on April 13, 2026 -- but the path there was a war of attrition against Apple's developer ecosystem.

The Build

LockIn is not a simple app. It uses Apple's FamilyControls framework, Screen Time APIs, Vision framework for body pose detection, NFC, Live Activities, and StoreKit 2 for in-app purchases. Each of these comes with its own layer of complexity, documentation gaps, and platform-specific requirements.

Building the app was hard. Getting it onto the App Store was harder.

The Entitlement Nightmare

The FamilyControls framework requires a special entitlement from Apple. You cannot just use it -- you need Apple to approve your app's access to Screen Time APIs. This is not a normal developer account feature. It is a gated capability that requires a separate application and review.

The provisioning profile situation was genuinely nightmarish. Provisioning profiles in iOS development are the certificates that tell Apple "this developer is allowed to do this thing on this device." When your app uses multiple extensions -- ShieldConfigurationExtension, DeviceActivityMonitorExtension -- each one needs its own provisioning profile, its own app group configuration, and its own entitlements. Getting all of these aligned and working together was one of the most technically painful things I have done.

The Rejections

Apps get rejected from the App Store. That is normal. What is less normal is getting rejected for issues that are hard to debug remotely -- things like entitlement mismatches, extension communication failures, and sandbox environment quirks that do not reproduce in local testing. Each rejection came with a vague explanation and sent me back to Xcode to figure out what went wrong.

Amir, my technical mentor from India, was critical during this phase. He helped navigate the Apple certificates, CI/CD setup, and the specific FamilyControls implementation details that are barely documented anywhere.

The Xcode Pain

On top of the App Store submission issues, Xcode itself was fighting me. Multiple dyld shared cache issues, provisioning mismatches, and at one point, macOS storage constraints became a problem -- because Xcode and its simulators eat disk space like nothing else. Building for iOS as a young developer without an established setup means running into infrastructure problems that have nothing to do with your code.

When It Went Live

April 13, 2026. LockIn appeared on the App Store. Bundle ID: get.lockin.

The feeling is hard to describe. Months of building, debugging, rejected submissions, provisioning profile nightmares, late-night sessions fixing extension communication -- and then suddenly, people can search for your app and download it. Your thing is on the same store as every app you have ever used. It is real in a way that a localhost demo never is.

I shared the link everywhere. Every group chat, every friend, every person in co/Build. "Install it." "Share it to all your friends." The build in public energy was at its peak.

What It Taught Me

The App Store submission process taught me that shipping is not the same as building. Building is the creative, fun part. Shipping is the bureaucratic, painful, unglamorous part where you fight with provisioning profiles and read Apple documentation at 1am. Both are necessary. Most people only do the first part.

See Also

Browse Wiki