Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
safaiyeh avatar

App Store Review

  • 1k installs
  • 254 repo stars
  • Updated July 21, 2026
  • safaiyeh/app-store-review-skill

app-store-review is a Claude Code skill that scans iOS, macOS, tvOS, watchOS, and visionOS app code against Apple's App Store Review Guidelines for developers who need to catch rejection risks before submission.

About

app-store-review is a MIT-licensed Claude Code skill (version 1.0.0) that evaluates Swift, Objective-C, React Native, and Expo projects against Apple's complete App Store Review Guidelines. The skill walks guideline-by-guideline through privacy, payments, user-generated content, entitlements, and platform-specific rules for iOS, macOS, tvOS, watchOS, and visionOS targets. Developers reach for app-store-review when preparing App Store Connect submissions, auditing compliance after guideline updates, or debugging unexplained review rejections in mobile codebases. The checker is designed to flag guideline violations in source before upload, reducing rework cycles with App Review. Triggers include app review preparation, compliance checking, and submission readiness tasks across Apple platform apps.

  • Evaluates code against all 6 main App Store Review Guideline sections including Safety, Performance, Business, Design, L
  • Supports Swift, Objective-C, React Native and Expo projects.
  • Identifies rejection risks for payments, user data, sensitive content, UGC moderation and Kids Category features.
  • Delivers concrete compliance findings with references to specific guideline rules before you submit.
  • Hard-gate review step: run before any App Store or TestFlight submission.

App Store Review by the numbers

  • 1,008 all-time installs (skills.sh)
  • +40 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #128 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/safaiyeh/app-store-review-skill --skill app-store-review

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1k
repo stars254
Security audit3 / 3 scanners passed
Last updatedJuly 21, 2026
Repositorysafaiyeh/app-store-review-skill

How do you catch App Store rejection issues in code?

Automatically scan iOS, macOS, React Native or Expo code against Apple's full App Store Review Guidelines before submission.

Who is it for?

Mobile developers shipping iOS, macOS, tvOS, watchOS, or visionOS apps in Swift, Objective-C, React Native, or Expo who want pre-submission compliance review.

Skip if: Android Play Store compliance, backend-only API services with no Apple client, or teams that only need general code quality linting unrelated to App Store rules.

When should I use this skill?

A developer asks to review iOS/macOS/React Native/Expo code for App Store submission readiness, compliance checking, or rejection risk before upload.

What you get

Guideline-by-guideline compliance report with flagged rejection risks mapped to Apple App Store Review Guidelines sections.

  • Guideline compliance report
  • Flagged rejection risks by guideline section

By the numbers

  • MIT-licensed skill version 1.0.0
  • Covers 5 Apple platforms: iOS, macOS, tvOS, watchOS, and visionOS

Files

SKILL.mdMarkdownGitHub ↗

App Store Review Guidelines Checker

Comprehensive guide for evaluating iOS, macOS, tvOS, watchOS, and visionOS app code against Apple's App Store Review Guidelines. This skill covers EVERY guideline point to identify potential rejection issues before submission.

Supports: Swift, Objective-C, React Native, and Expo apps

Guidelines current through: Apple's June 8, 2026 App Review Guidelines update.

When to Apply

Use this skill when:

  • Preparing an app for App Store submission
  • Reviewing code for compliance issues
  • Implementing features that may trigger review concerns
  • Auditing existing apps for guideline violations
  • Building features involving payments, user data, or sensitive content

Guideline Sections

Read individual rule files for detailed explanations, checklists, and code examples:

SectionFileKey Topics
1. Safetyrules/1-safety.mdObjectionable content, UGC moderation, Kids Category, physical harm, data security
2. Performancerules/2-performance.mdApp completeness, metadata accuracy, hardware compatibility, software requirements
3. Businessrules/3-business.mdIn-app purchase, subscriptions, cryptocurrencies, other business models
4. Designrules/4-design.mdCopycats, minimum functionality, spam, extensions, Apple services, login
5. Legalrules/5-legal.mdPrivacy, data collection, intellectual property, gambling, VPN, MDM

Risk Levels by Category

Risk LevelCategorySectionCommon Rejection Reasons
CRITICALPrivacy & Data5.1Missing privacy policy, unauthorized data collection
CRITICALPayments3.1Bypassing in-app purchase, unclear pricing
HIGHSafety1.xObjectionable content, inadequate UGC moderation
HIGHPerformance2.xCrashes, incomplete features, deprecated APIs
MEDIUMDesign4.xCopycat apps, minimum functionality issues
MEDIUMLegal5.xIP violations, gambling without license

---

Quick Reference: High-Risk Rejection Patterns

Critical Issues (Immediate Rejection)

Swift:

// 🔴 Private API usage
let selector = NSSelectorFromString("_privateMethod")

// 🔴 Hardcoded secrets
let apiKey = "sk_live_xxxxx"

// 🔴 External payment for digital goods
func purchaseDigitalContent() {
    openStripeCheckout() // Use StoreKit instead
}

React Native / Expo:

// 🔴 Hardcoded secrets in JS bundle
const API_KEY = 'sk_live_xxxxx'; // REJECTION

// 🔴 External payment for digital goods
Linking.openURL('https://stripe.com/checkout'); // Use react-native-iap

// 🔴 Dynamic code execution
eval(downloadedCode); // REJECTION

// 🔴 Major feature changes via CodePush/expo-updates
// OTA updates for bug fixes only, not new features!

High-Risk Issues

Swift:

// 🟡 Missing ATT when using ad SDKs
import FacebookAds // Without ATTrackingManager

// 🟡 Account creation without deletion
func createAccount() { } // But no deleteAccount()

React Native / Expo:

// 🟡 Missing ATT (use expo-tracking-transparency)
import analytics from '@react-native-firebase/analytics';
analytics().logEvent('event'); // Without ATT prompt = REJECTION

// 🟡 Account deletion via website only
Linking.openURL('https://example.com/delete'); // Must be in-app!

// 🟡 Social login without Sign in with Apple
<GoogleSigninButton /> // Must also offer Apple login!

Medium-Risk Issues

// 🟠 Vague purpose strings in Info.plist
"This app needs camera access" // Be specific!

// 🟠 WebView-only app (insufficient native functionality)
const App = () => <WebView source={{ uri: 'https://site.com' }} />;

// 🟠 References to Android in iOS app
const text = "Also available on Android"; // REJECTION

// 🟠 console.log in production
console.log('debug'); // Remove or wrap in __DEV__

---

Pre-Submission Checklist

Privacy (Section 5.1)

  • [ ] Privacy policy link in App Store Connect
  • [ ] Privacy policy link accessible within app
  • [ ] All purpose strings are specific and accurate
  • [ ] App Privacy details completed in App Store Connect
  • [ ] ATT implemented if tracking users
  • [ ] Account deletion available if accounts exist
  • [ ] Data minimization - only requesting necessary permissions
  • [ ] User consent obtained before data collection

Payments (Section 3.1)

  • [ ] StoreKit used for all digital purchases
  • [ ] Restore purchases implemented
  • [ ] Subscription terms clearly displayed
  • [ ] Loot box odds disclosed if applicable
  • [ ] No external payment for digital goods (unless entitled)
  • [ ] Credits/currencies don't expire

Safety (Section 1.x)

  • [ ] No objectionable content
  • [ ] UGC moderation implemented (filter, report, block, contact)
  • [ ] UGC violations can be removed quickly and backed by a remediation plan
  • [ ] Kids and teens receive age-appropriate experiences inside the app
  • [ ] Parental gates for Kids Category apps
  • [ ] No false information or prank features
  • [ ] Medical disclaimers if applicable
  • [ ] No substance promotion

Performance (Section 2.x)

  • [ ] No crashes or bugs
  • [ ] All features complete and functional
  • [ ] No placeholder content
  • [ ] IPv6 tested and functional
  • [ ] Demo account provided if needed
  • [ ] Using only public APIs
  • [ ] No deprecated APIs
  • [ ] Proper background mode usage

Design (Section 4.x)

  • [ ] Sufficient native functionality (not just web wrapper)
  • [ ] No copycat concerns
  • [ ] Original app name and branding
  • [ ] No duplicate Bundle ID spam or low-effort saturated-category clones
  • [ ] Live Activities, push notifications, and Game Center are not used for spam, phishing, or unsolicited messages
  • [ ] Extensions comply with guidelines
  • [ ] Login alternatives if using social login
  • [ ] Not monetizing built-in capabilities

Legal (Section 5.x)

  • [ ] No unlicensed third-party content
  • [ ] Proper Apple trademark usage
  • [ ] Gambling license if applicable
  • [ ] VPN uses NEVPNManager API
  • [ ] COPPA/GDPR compliance for kids

---

References

Related skills

FAQ

Which platforms does app-store-review support?

app-store-review evaluates code for iOS, macOS, tvOS, watchOS, and visionOS apps written in Swift, Objective-C, React Native, or Expo. The skill maps findings to Apple's App Store Review Guidelines for pre-submission compliance checking.

When should developers run app-store-review?

app-store-review should run before App Store Connect upload when preparing submission, after Apple guideline updates, or when debugging review rejections. The skill triggers on compliance checking and submission readiness tasks.

Is App Store Review safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Code Review & Qualitytestingintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.