AI-powered pre-submission audit for Apple App Store & Google Play Store
Catch rejection risks before you submit. Save days of review cycles.
Works with any mobile framework β Flutter β’ React Native β’ Swift β’ Kotlin β’ KMP β’ Jetpack Compose β’ Java
Real audit report generated on a Flutter project β no setup, just one prompt.
Instant overview of your app's submission readiness across all categories and the 4 Layers of Review.
Finds exact files, line numbers, and tells you precisely what's wrong and how to fix it.
Every mobile developer has been there:
You spend days polishing your app β upload to the store β wait 24-48 hours β REJECTED. Fix one issue β resubmit β wait again β REJECTED for something else. Repeat until you question your career choices.
This skill was born from real rejections. It's a comprehensive ruleset that teaches AI coding assistants to audit your app before you submit β catching the same issues Apple and Google reviewers look for.
Framework-agnostic: App Store and Play Store reviewers don't care if you built with Flutter, React Native, Swift, or Kotlin. A rejection is a rejection. This skill works with any mobile framework.
| Category | Apple | Examples | |
|---|---|---|---|
| π³ Payments & Billing | β | β | Custom promo codes, missing restore button, external payment links |
| π Privacy & Permissions | β | β | Missing privacy policy, excessive permissions, ATT compliance |
| βοΈ Intellectual Property | β | β | Content rights, trademark misuse, video downloading |
| π¨ UI & Design Quality | β | β | Broken layouts, confusing navigation, unreadable text |
| π App Completeness | β | β | Crashes, broken buttons, placeholder content, dead APIs |
| β‘ Performance | β | β | Lag, battery drain, memory leaks, ANR |
| π Security & Malware | β | β | Hidden features, data stealing, obfuscated code |
| π Store Metadata | β | β | Screenshot issues, version mismatch, misleading description |
| π« Spam & Duplicates | β | β | Clone apps, no user value, template apps |
| β | β | Adult content, hate speech, gambling, dangerous activities | |
| π Misleading Functionality | β | β | Fake features, hidden functionality, fake buttons |
| π± Platform-Specific | β | β | Target SDK, 64-bit, .aab format, Info.plist flags |
70+ audit rules across 15 categories β based on official guidelines and real-world rejections.
Copy the app-store-audit-skill/ folder to your project root:
Flutter:
your-flutter-project/
βββ app-store-audit-skill/
β βββ README.md β You're reading this
β βββ AUDIT_SKILL.md β The audit rules (the AI reads this)
βββ lib/
βββ pubspec.yaml
βββ ...
React Native:
your-rn-project/
βββ app-store-audit-skill/
β βββ README.md
β βββ AUDIT_SKILL.md
βββ src/
βββ package.json
βββ ...
Native iOS (Swift / SwiftUI):
your-ios-project/
βββ app-store-audit-skill/
β βββ README.md
β βββ AUDIT_SKILL.md
βββ MyApp/
βββ MyApp.xcodeproj
βββ ...
Native Android (Kotlin / Java / Jetpack Compose):
your-android-project/
βββ app-store-audit-skill/
β βββ README.md
β βββ AUDIT_SKILL.md
βββ app/src/main/
βββ build.gradle.kts
βββ ...
KMP (Kotlin Multiplatform):
your-kmp-project/
βββ app-store-audit-skill/
β βββ README.md
β βββ AUDIT_SKILL.md
βββ shared/
βββ androidApp/
βββ iosApp/
βββ ...
Open your AI coding assistant (Cursor, Windsurf, Gemini CLI, etc.) and ask:
Audit my app for App Store and Play Store rejection risks.
Use the audit skill in app-store-audit-skill/AUDIT_SKILL.md
Or be more specific:
I'm about to submit my iOS app to the App Store.
Read app-store-audit-skill/AUDIT_SKILL.md and audit my codebase for rejection risks.
Focus on payments and subscription compliance.
The AI will generate a report like this:
π‘οΈ App Store Audit Report
App: My Awesome App
Version: 2.1.0
Platforms: iOS, Android
π΄ Critical Issues (Will Cause Rejection)
ββββββββββββββββββββββββββββββββββββββββ
1. [AAPL-3.1.1-001] Custom promo code field found on paywall
β File: lib/views/paywall.dart:142
β Fix: Remove promo code field from iOS. Use Apple Offer Codes instead.
2. [AAPL-3.1.2-001] Missing "Restore Purchases" button
β File: lib/views/paywall.dart
β Fix: Add a Restore Purchases button on the subscription screen.
π‘ Warnings (May Cause Rejection)
ββββββββββββββββββββββββββββββββββββββββ
1. [AAPL-META-002] Version "2.0.0" shown in Profile doesn't match
pubspec.yaml version "2.1.0"
β File: lib/views/profile.dart:89
β
Passed: Privacy, Content, UI, Performance
Fix the flagged issues, then submit with confidence! π
| File | Purpose | Who Reads It |
|---|---|---|
README.md |
Introduction, setup guide, examples | You (the developer) |
AUDIT_SKILL.md |
Complete audit rules, checklists, AI instructions | Your AI assistant |
Note: The AI reads
AUDIT_SKILL.mdto understand the rules. You don't need to memorize them β that's the AI's job.
| Platform | Supported | Guidelines Covered |
|---|---|---|
| π Apple App Store | β | Review Guidelines 2.x β 5.x, HIG, Metadata |
| π€ Google Play Store | β | Developer Program Policy, Billing, Data Safety |
| π Web (PWA) | π | Coming soon |
| Framework | Supported | Auto-detected |
|---|---|---|
| Flutter (Dart) | β | β |
| React Native (JS/TS) | β | β |
| Native iOS (Swift / SwiftUI) | β | β |
| Native Android (Kotlin / Jetpack Compose) | β | β |
| Native Android (Java) | β | β |
| Kotlin Multiplatform (KMP) | β | β |
| Xamarin / .NET MAUI | β | β |
| Ionic / Capacitor | β | β |
This skill works with any AI coding assistant that can read files:
| Tool | How to Use |
|---|---|
| Gemini CLI / Antigravity | Point to AUDIT_SKILL.md in your prompt |
| Cursor | Add AUDIT_SKILL.md to .cursor/rules/ or reference in chat |
| GitHub Copilot | Reference the file in Copilot Chat |
| Windsurf | Add to Cascade rules or reference in chat |
| Cline / Aider | Include in system prompt or reference file |
These are actual rejections that led to rules in this skill:
| App | Store | What Happened | Rule Added |
|---|---|---|---|
| B3G TV | Apple | Custom promo code field on paywall β rejected even though codes were tracking-only, no discount | AAPL-3.1.1-001 |
| B3G TV | Apple | Streaming app content rights questioned β required ownership statement | AAPL-5.2.3-002 |
| B3G TV | Apple | App Privacy section not filled β required Admin role in App Store Connect | AAPL-META-007 |
Have a rejection story? Open an issue or submit a PR to add your case!
We welcome contributions! Here's how:
- Found a new rejection case? Add it to
AUDIT_SKILL.md - Know a rule we missed? Open an issue or PR
- Built something cool with this? Let us know!
When adding rules, follow this format:
PLATFORM-CATEGORY-NUMBER
Examples:
AAPL-3.1.1-001 β Apple, Guideline 3.1.1, Rule #001
GOOG-BILL-003 β Google, Billing, Rule #003
- 95+ audit rules
- 2 store platforms covered (Apple + Google)
- 7+ frameworks supported (Flutter, React Native, Swift, Kotlin, KMP, Java, Compose)
- 21 categories (including 10 advanced edge-cases)
- 4 Layers of Rejection framework
- Auto-detection of project framework by AI
- Built from real rejections β not just docs
If this saved you from a rejection, please:
- Star this repo β β it helps other developers find it
- Share with your team β save everyone's time
- Report new cases β help us grow the ruleset
MIT License β use freely in personal and commercial projects.
Built with frustration, tested with real rejections.
Because no developer should waste days on preventable App Store rejections.
Made with β€οΈ by @RahimU4


