RORK LABJP
TOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the roundTOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the round
Articles/Dev Tools
Dev Tools/2026-06-14Intermediate

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.

Rork515Expo149Privacy Manifest5App Store Review8Required Reason API4indie developer37

Premium Article

A few minutes after uploading a build to App Store Connect, an email with "ITMS-91053" in the subject line lands in your inbox. As an indie developer who has shipped apps for years, I will admit that the first time I hit this warning, I genuinely could not tell what it was complaining about. I had not knowingly written any privacy-related API.

Rork generates an Expo (React Native) app, and you write almost no native code yourself. The warning still appears because the cause is not your JavaScript — it lives in the native layer of Expo and the SDKs underneath it. Without understanding that, you keep burning time on pre-review rejections. This article walks through clearing Privacy Manifest issues before submission, assuming a Rork-generated app.

ITMS-91053 and ITMS-91061 Are Two Different Problems

These two get conflated constantly. Both arrive by email, but the cause and the fix differ.

ITMS-91053 is "Missing API declaration": you use a Required Reason API but have not declared the reason in PrivacyInfo.xcprivacy. This is usually about your own app (or a thin native layer).

ITMS-91061 is "Missing privacy manifest": a third-party SDK on Apple's "commonly used" list does not ship a signed manifest. AdMob (Google Mobile Ads SDK) and various analytics SDKs fall here. You cannot fix this in your code — you bump the SDK version instead.

Early on, I tried to fix both as one "privacy warning," patched only one side, resubmitted, and got the same email again. Splitting them by the ITMS number first is by far the fastest path.

What a Required Reason API Is, and Why Expo Apps Trip It

Required Reason APIs are OS APIs that are easy to abuse for fingerprinting. Using them is allowed, but you must declare why with a reason code. The four common categories are file timestamps (NSPrivacyAccessedAPICategoryFileTimestamp), disk space (DiskSpace), system boot time (SystemBootTime), and UserDefaults.

The catch in Expo apps is that you hit these without calling them directly. UserDefaults is used internally by AsyncStorage and many libraries; file timestamps are touched by caching libraries. The more features you add in Rork, the more of these APIs creep in.

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
Learn to read the ITMS-91053 / ITMS-91061 emails that arrive right after upload and tell whether your code or a bundled SDK is the cause
Get a minimal PrivacyInfo.xcprivacy that declares only the four NSPrivacyAccessedAPITypes a Rork app realistically hits
Turn 'commonly used SDK' manifest gaps like AdMob into a permanent fix using Expo config plugins and dependency upgrades
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-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-06-26
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 — with the app.config.ts setup and a step-by-step check of third-party SDKs.
Dev Tools2026-07-04
Should You Show a Read More Link? Let the Rendered Text Decide in Rork (Expo)
Clamping a product description to three lines and adding a Read more toggle sounds simple, until the toggle also appears under single-line text. This walks through measuring the real line count with onTextLayout so the toggle only shows when text actually overflows, covering iOS vs Android quirks, expand animation, and font scaling.
📚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 →