app-store-review

Evaluates code against Apple's App Store Review Guidelines. Use this skill when reviewing iOS, macOS, tvOS, watchOS, or visionOS app code (Swift, Objective-C, React Native, or Expo) to identify potential App Store rejection issues before submission. Triggers on tasks involving app review preparation, compliance checking, or App Store submission readiness.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "app-store-review" with this command: npx skills add safaiyeh/app-store-review-skill/safaiyeh-app-store-review-skill-app-store-review

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

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)
  • 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
  • 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

app-store-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

arxiv-paper-writer

Use this skill whenever the user wants Claude Code to write, scaffold, compile, debug, or review an arXiv-style academic paper, especially survey papers with LaTeX, BibTeX citations, TikZ figures, tables, and PDF output. This skill should trigger for requests like writing a full paper, creating an arXiv paper project, turning a research topic into a LaTeX manuscript, reproducing the Paper-Write-Skill-Test agent-survey workflow, or setting up a Windows/Linux Claude Code paper-writing loop.

Archived SourceRecently Updated
Coding

cli-proxy-troubleshooting

排查 CLI Proxy API(codex-api-proxy)的配置、认证、模型注册和请求问题。适用场景包括:(1) AI 请求报错 unknown provider for model, (2) 模型列表中缺少预期模型, (3) codex-api-key/auth-dir 配置不生效, (4) CLI Proxy 启动后 AI 无法调用, (5) 认证成功但请求失败或超时。包含源码级排查方法:模型注册表架构、认证加载链路、 SanitizeCodexKeys 规则、常见错误的真实根因。

Archived SourceRecently Updated
Coding

visual-summary-analysis

Performs AI analysis on input video clips/image content and generates a smooth, natural scene description. | 视觉摘要智述技能,对传入的视频片段/图片内容进行AI分析,生成一段通顺自然的场景描述内容

Archived SourceRecently Updated