Take One Contact, Not the Whole Book — iOS 18's ContactAccessButton
iOS 18 adds a limited tier to contacts access. With ContactAccessButton you can receive just the one contact a user picks, without ever asking for the whole address book. Assuming the native Swift Rork Max generates, here is the design and implementation.
Handling iOS Limited Photo Library Access in a Rork (Expo) App
Handle iOS limited photo library access (selected photos only) correctly in a Rork (Expo) app. Covers the three states of full / limited / denied, designing a screen that works from the selected subset, and a path to add more photos, all with working code.
The App Privacy Section That Grows the Moment You Add Ads and Subscriptions — Notes on What I Actually Checked
How I filled out App Store Connect's App Privacy section for a Rork (Expo) app with AdMob, RevenueCat, and Crashlytics — including the tracking-to-ATT chain, written up as field notes from running six apps.
The Private Screen That Lingers in the App Switcher — Hiding the Snapshot iOS Takes the Moment You Background Your App
When you send a React Native app generated by Rork to the background, iOS photographs the current screen for the App Switcher and writes it to disk. Journals and personal input screens linger there in plain sight. This walks through the iOS privacy overlay (why inactive, not background), Android's FLAG_SECURE, scoping it to sensitive screens only, and screenshot detection — all in working code.
Your Rork App's Photos Look Sideways Only After Upload — Normalizing EXIF Orientation and Stripping Location Metadata
A photo that looks upright in your app rotates 90 degrees once it hits your server. The cause is the EXIF Orientation tag. Here's how to bake the rotation into pixels and strip location metadata with expo-image-manipulator before uploading.
Logging Design for Rork Apps: What to Keep and How to Redact PII
Rork-generated apps tend to scatter console.log everywhere, and when a bug appears you cannot read the part that matters. This designs structured logging, log levels, automatic PII masking, and production send control — all with code you can use as-is.
Rork iOS App Rejected with ITMS-90683 on TestFlight — How to Fix Missing Purpose Strings via app.json
If your Rork-built iOS app passes upload but gets an email titled ITMS-90683: Missing Purpose String in Info.plist, this guide walks through the real cause and the permanent fix via app.json, based on 12 years of shipping personal iOS apps with the same problem appearing across new SDK updates.
Rork App Rejected for Incomplete Data Safety Section on Google Play: How to Fix It
Step-by-step guide to correctly filling out Google Play's Data Safety section for Rork apps. Covers AdMob, Firebase, RevenueCat, and common declaration mistakes that cause rejections.
Shipping a Kids App with Rork Max — Kids Category Review, COPPA, and Parental Gates
A complete guide to developing and publishing kids apps with Rork Max. Covers App Store Kids category requirements, COPPA-compliant implementation patterns, parental gate code examples, and Ask to Buy integration for indie developers.
Implementing App Tracking Transparency in Rork: How to Pass App Store Review
How to implement App Tracking Transparency (ATT) in Rork-built iOS apps so they pass App Store review on the first try, with the right Info.plist copy, prompt timing, and graceful fallback when users deny tracking.