Setup and context — Why Apps Get Rejected
There are few things more frustrating for an indie developer than receiving a rejection notice from Apple days after submitting your app. But the App Store review process is not a black box. It follows well-documented guidelines, and most rejections are entirely preventable.
Apps built with Rork and Rork Max are held to the same standards as any other app. AI-generated code doesn't get special treatment — for better or worse. In fact, there are some Rork-specific pitfalls that are worth paying extra attention to.
This guide provides a practical, step-by-step checklist based on Apple's App Store Review Guidelines, combined with hard-won lessons from the Rork development community.
Section 1: Pre-Submission Fundamentals
App Completeness
Apple's top priority is app completeness. Beta versions, prototypes, and half-finished apps will be rejected without hesitation.
You need to verify that every screen transition works correctly, that no placeholder text or images remain anywhere in the app, that there are no broken links, and that the app never crashes during normal use.
When building with Rork, pay special attention to AI-generated placeholder content. Strings like "Lorem ipsum," "Sample Text," or "TODO: Replace this" are easy to miss but will immediately trigger a rejection.
Bundle ID and Version Numbers
Your bundle ID must be unique. With Rork Max, use the com.yourname.appname format. Version numbers should follow semantic versioning (e.g., 1.0.0), and you must increment the build number with every new submission.
Minimum OS Version
For Rork Max Swift apps, targeting iOS 17 or later is the current recommendation. If you need to support iOS 16, make sure to check API availability explicitly using @available attributes for any newer APIs you're using.
Section 2: Metadata and Screenshots
App Name and Description
Your app name must be 30 characters or fewer and should not closely resemble the name of any existing app. The description should concretely describe what your app does. Avoid unsubstantiated superlatives like "the best" or "the only."
One important point: don't include "Rork," "Built with AI," or any similar reference to your development tools in the app name or description. Apple reviews the user experience, not the tools you used to build it.
Screenshot Requirements
Prepare optimized screenshots for each device size (6.7-inch, 6.1-inch, 5.5-inch). Screenshots must accurately reflect the actual app interface. Overly decorated images or pure mockups without real app content are grounds for rejection.
Keyword Optimization
Make full use of the 100-character keyword field. Enter keywords separated by commas, and avoid duplicating words that already appear in your app name or description. Never include competitor brand names in your keywords — this will result in an immediate rejection.
Section 3: Privacy and Data Collection
App Tracking Transparency (ATT)
Since iOS 14.5, tracking users requires explicit permission. If your Rork app includes advertising SDKs like AdMob or analytics tools like Firebase Analytics, implementing the ATT framework is mandatory.
import AppTrackingTransparency
func requestTrackingPermission() {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Tracking permitted
break
case .denied, .restricted, .notDetermined:
// Tracking not permitted
break
@unknown default:
break
}
}
}Privacy Policy
Every app requires a privacy policy URL. Even as a solo developer, you need a page that clearly states what data you collect and how you use it. While free privacy policy generators exist, always verify that the generated text accurately reflects your app's actual data practices.
Privacy Nutrition Labels
Fill out the "App Privacy" section in App Store Connect with absolute accuracy. Any discrepancy between your actual data collection and your declared practices will result in rejection. Pay particular attention to data collected by third-party SDKs — you are required to declare that as well.
Section 4: In-App Purchases and Monetization
StoreKit 2 Implementation
If your app includes in-app purchases, StoreKit 2 is the recommended API. Test thoroughly in the sandbox environment, covering the full purchase flow, restore flow, and error handling.
Apple's Payment Rules
Digital content must be sold exclusively through Apple's In-App Purchase system. Directing users to external payment methods is prohibited with limited exceptions. Physical goods and services can use external payment providers like Stripe.
Subscription Considerations
If you offer auto-renewable subscriptions, you must clearly explain how to cancel. For free trials, clearly state the billing amount and timing after the trial period ends.
Section 5: Rork and Rork Max Specific Considerations
AI-Generated Code Quality
Rork generally produces high-quality code, but issues can arise in certain scenarios.
Unused import statements may remain in the generated code. While they won't prevent compilation, they'll generate excessive Xcode warnings. Deprecated API usage is another common issue. You can mitigate this by explicitly instructing Rork to use the latest APIs in your prompts.
Using Rork Max's 2-Click Publish
Rork Max's 2-Click Publish feature is incredibly convenient, but it doesn't automatically satisfy every review requirement. You still need to manually configure the privacy policy URL, fill in App Privacy labels, and prepare screenshots.
Expo / React Native Apps (Standard Rork)
Apps built with standard Rork (React Native) are submitted through EAS Build. Getting the app.json configuration right is particularly critical in this case.
{
"expo": {
"name": "YourAppName",
"slug": "your-app-name",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.yourname.yourapp",
"buildNumber": "1",
"supportsTablet": true,
"infoPlist": {
"NSCameraUsageDescription": "Used to take photos",
"NSPhotoLibraryUsageDescription": "Used to select photos from your library"
}
}
}
}Section 6: The Top 10 Rejection Reasons and How to Avoid Them
1. Guideline 4.0 — Design: Spam
Apps that are essentially unchanged templates or clones of existing apps are classified as spam. Don't submit a Rork template as-is. Add your own unique value proposition.
2. Guideline 2.1 — Performance: App Completeness
Incomplete features, placeholder content, and leftover test data fall under this category. Run through every feature from start to finish before submitting.
3. Guideline 4.3 — Design: Spam (Duplicate)
Submitting multiple apps with nearly identical functionality will get them rejected. If you're building themed variations, ensure each one is meaningfully differentiated.
4. Guideline 5.1.1 — Legal: Privacy (Data Collection and Storage)
Missing or inadequate privacy policies and undeclared data collection trigger this rejection. Follow Section 3 of this guide completely.
5. Guideline 2.3.3 — Performance: Accurate Metadata
Screenshots that don't match the actual app will be flagged. Always use screenshots from your final build.
6. Guideline 3.1.1 — Business: In-App Purchase
Using external payment methods for digital content violates Apple's guidelines. Switch to StoreKit 2 for all digital purchases.
7. Guideline 2.5.1 — Performance: Software Requirements
Use of private APIs or private frameworks triggers this rejection. While rare in Rork-generated code, be cautious with any custom code you add.
8. Guideline 4.2 — Design: Minimum Functionality
Apps that merely wrap a website in a WebView will be rejected. Leverage native capabilities to provide an experience that goes beyond what a website can offer.
9. Guideline 1.2 — Safety: User Generated Content
Apps handling user-generated content must include content filtering, reporting, and blocking features. This is especially relevant for social or chat apps built with Rork.
10. Guideline 5.1.2 — Legal: Privacy (Data Use and Sharing)
Inaccurate disclosure of third-party data sharing will result in rejection. Know exactly what data Firebase, AdMob, analytics SDKs, and any other third-party libraries are sending.
Section 7: The Submission Workflow
Step 1: Final Testing
Test every feature on a physical device. Simulators can't catch bugs related to the camera, GPS, accelerometer, or other hardware sensors.
Step 2: Configure App Store Connect
Log into App Store Connect and register your new app. Set the bundle ID, SKU, primary language, pricing, and distribution regions.
Step 3: Upload Your Build
For Rork Max, use either 2-Click Publish or Xcode. For standard Rork apps, use EAS Build to upload your binary.
Step 4: Write Review Notes
Add notes for the review team. If your app requires an account, provide demo credentials. If it has special features, explain how to access and use them.
Step 5: Submit and Wait
Reviews typically complete within 24 to 48 hours, though they can take up to 7 days during busy periods. Monitor the status through App Store Connect.
Section 8: What to Do If You Get Rejected
If your app is rejected, start by carefully reading Apple's feedback in the Resolution Center. The notice will specify exactly which guideline was violated. Fix the identified issue and resubmit.
If you disagree with the decision, you can file an appeal through the Resolution Center. Be polite, specific, and clearly explain why you believe your app complies with the guideline in question.
Wrapping Up
Getting through App Store review successfully comes down to understanding the guidelines and methodically working through a checklist before you hit submit. Building with Rork doesn't make the review process any harder or easier — what matters is delivering a polished, complete, and privacy-respecting app that provides genuine value to users.
Go through this checklist item by item before your next submission, and you'll dramatically increase your chances of getting approved on the first try.