RORK LABJP
BUILD — Rork Max runs real Macs in the cloud loaded with Xcode and the iOS SDK, writing SwiftUI, compiling, reading the errors and building again. That loop, not the code generation, is what lifts the outputNATIVE — What comes out is pure Swift and SwiftUI, not React Native. Reaching AR, Metal graphics and widgets that React Native cannot touch is the real gap between this and other buildersPLATFORMS — Coverage spans iPhone, iPad, Apple Watch, Apple TV and Vision Pro, plus iMessage. Worth a look if you want to start from a watch app or an extension rather than a phone screenCOMPANION — The Rork Companion app lets you check a generated build on a real iPhone without a paid Apple Developer account, lowering the bar for trying a first project end to endPRICING — Free to start, paid plans from $25 a month, and Rork Max on the $200 Max plan. Worth working out up front how many projects it takes to earn that backDEADLINE — From August 31, 2026, Google Play requires target API level 36 or higher for new apps and updates alike. Ten days out, and the targetSdkVersion of what you generate is yours to verifyBUILD — Rork Max runs real Macs in the cloud loaded with Xcode and the iOS SDK, writing SwiftUI, compiling, reading the errors and building again. That loop, not the code generation, is what lifts the outputNATIVE — What comes out is pure Swift and SwiftUI, not React Native. Reaching AR, Metal graphics and widgets that React Native cannot touch is the real gap between this and other buildersPLATFORMS — Coverage spans iPhone, iPad, Apple Watch, Apple TV and Vision Pro, plus iMessage. Worth a look if you want to start from a watch app or an extension rather than a phone screenCOMPANION — The Rork Companion app lets you check a generated build on a real iPhone without a paid Apple Developer account, lowering the bar for trying a first project end to endPRICING — Free to start, paid plans from $25 a month, and Rork Max on the $200 Max plan. Worth working out up front how many projects it takes to earn that backDEADLINE — From August 31, 2026, Google Play requires target API level 36 or higher for new apps and updates alike. Ten days out, and the targetSdkVersion of what you generate is yours to verify
Articles/Dev Tools
Dev Tools/2026-06-26Advanced

Keep Your Rork App's Review From Stalling on a Privacy Manifest Gap

Handle PrivacyInfo.xcprivacy and Required Reason APIs in a Rork Expo app — a common cause of App Store review stalls — covering app.config.ts setup, collected-data declarations, third-party SDK checks, and a pre-submission verification script.

Rork540Expo176Privacy Manifest5App Store88Required Reason API4

Premium Article

You submit the app, and just when you think it cleared, an email arrives from Apple: "your app uses an API without a declared reason" — that warning that starts with ITMS. As an indie developer shipping several apps to the App Store and Google Play, the first time I got that notice I froze, with no idea what to fix.

Rork emits an Expo (React Native) app, and inside it many native APIs and third-party SDKs are running. Since 2024 Apple requires you to declare, in a privacy manifest, the "reason" for using certain APIs. Without the declaration it is a warning email today, but it will be upgraded to a rejection. Here, I work through this for a Rork project from both sides — your own code and the SDKs.

What is actually being asked

Apple requires two broad things.

  1. Shipping a "privacy manifest" (PrivacyInfo.xcprivacy) that declares the kinds of data your app collects and how they are used.
  2. Declaring, with a prescribed code, why you use certain APIs known as "Required Reason APIs."

Required Reason APIs are a set — file timestamps, free disk space, system boot time, UserDefaults — that can be abused for fingerprinting. If you use them for legitimate purposes, you pass simply by declaring the right reason code. The catch is that in most cases you are not calling them directly — a dependency is.

These are two separate requirements. Satisfying one leaves the other's gaps untouched, so the sections below handle them apart.

First, learn to read the warning email

The email lists the missing API categories, for example "no reason declared for NSPrivacyAccessedAPICategoryUserDefaults." Not skimming this is the start of the fix.

The first thing I did was copy the category names from the email and, for each, sort out "is this from my code or from an SDK?" Things like UserDefaults that the app itself uses go on my side; things an ad SDK touches internally go on the SDK side. That sorting instantly clarifies where to fix.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Use a lookup table of Expo features to API categories so you can write the declarations before the warning email ever arrives
Cover both halves of the requirement — Required Reason API declarations and the separate NSPrivacyCollectedDataTypes filing — without dropping either
Turn the pre-submission bundling check into a script that returns an exit code, so every release is verified mechanically
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Dev Tools2026-06-14
When Your Rork App Gets ITMS-91053 — A Practical Guide to Privacy Manifests and Required Reason APIs
Submitting a Rork-generated Expo app to the App Store can trigger Privacy Manifest warnings even when you never wrote the offending code. Here is how to clear both Required Reason API and SDK manifest issues before you submit.
Dev Tools2026-05-23
Auditing Privacy Manifests for Rork-Generated Expo Apps — A One-Day Pre-Submission Workflow for Indie Developers
A pre-submission workflow for indie developers shipping Rork-generated Expo apps. Walks through how to enumerate every dependency, detect missing PrivacyInfo.xcprivacy files, and ship without ITMS-91053 rejections — based on twelve years of personal app development.
Dev Tools2026-08-20
A beta-SDK build can reach TestFlight, but it can't reach review
Builds made with a beta Xcode can be distributed through TestFlight, but they cannot be submitted for App Store review. Here is how to check which SDK produced your build, and how to protect your release profile in eas.json.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →