App Store Submission Skill
Automates and validates the complete iOS App Store submission process, from code auditing to final upload.
Quick Start
When a user requests App Store submission help, follow this workflow:
- Project Analysis - Scan the Xcode project for configuration and code issues
- Compliance Check - Validate privacy, accessibility, and App Store requirements
- Asset Validation - Check for required assets (app icon, screenshots)
- Submission Checklist - Generate actionable checklist with priorities
- Timeline Estimation - Provide realistic timeline based on current state
Core Capabilities
1. Pre-Submission Code Audit
Run comprehensive checks for common App Store rejection causes:
Privacy & Permissions:
- Validate all
Info.plist usage descriptions (Camera, Photo Library, Location, etc.)
- Check for
NSPhotoLibraryAddUsageDescription if app shares/saves content
- Verify privacy manifest requirements for required APIs
- Ensure descriptions are user-friendly (not technical)
Code Quality Issues:
- Thread safety violations (@MainActor usage, background thread UI updates)
- Infinite loop risks in calculations/iterations
- Memory leaks and retain cycles
- Force unwrapping and optional misuse
- Missing accessibility labels on interactive elements
- Input validation gaps
Architecture & Best Practices:
- SwiftUI state management anti-patterns
- Unbounded data structures (memory issues)
- Deprecated API usage
- Error handling completeness
2. Compliance Validation
Required Configurations:
- App icon (all required sizes in Assets.xcassets)
- Bundle identifier format validation
- Version and build number consistency
- Code signing configuration
- Deployment target appropriateness
Privacy Requirements:
- Privacy manifest file (PrivacyInfo.xcprivacy) if using required APIs
- Privacy policy URL if collecting user data
- Data collection transparency
Accessibility:
- All interactive elements have accessibility labels
- VoiceOver navigation support
- Dynamic type support where appropriate
3. Asset Preparation Guidance
App Icon Requirements:
- 1024x1024px App Store icon
- All required app icon sizes in Assets.xcassets
- Proper alpha channel handling (no transparency)
Screenshot Requirements:
- Required device sizes (6.5", 6.7", 5.5" iPhones, iPad Pro)
- Localized screenshots if supporting multiple languages
- Recommended: 3-5 screenshots showing key features
4. Build Configuration Check
Validate build settings for release:
- Code signing identity and provisioning profile
- Build optimizations enabled
- Debug symbols configuration
- Entitlements validation
5. Common Rejection Patterns
Scan for patterns that frequently cause rejections:
Technical Issues:
- Crashes on launch or during basic functionality
- Broken links or placeholder content
- Incomplete features (non-functional buttons)
- Performance issues (excessive battery drain, memory usage)
Content Issues:
- Placeholder text or "Lorem ipsum"
- Missing content for advertised features
- Inappropriate or offensive content
Guideline Violations:
- Metadata inconsistencies (description doesn't match functionality)
- Misleading screenshots
- Hidden features not disclosed
Workflow Examples
Example 1: Initial Submission Audit
User: "I'm ready to submit my app to the App Store. Can you check if everything is ready?"
Process:
- Scan for
.xcodeproj or .xcworkspace
- Check
project.pbxproj for bundle ID, version, build settings
- Validate
Info.plist or build settings for privacy strings
- Check
Assets.xcassets for app icon
- Scan code for critical issues (use references/code-audit-checklist.md)
- Generate prioritized checklist with time estimates
- Provide actionable next steps
Example 2: Fix Specific Issue
User: "Apple rejected my app saying the privacy description is too technical"
Process:
- Locate privacy descriptions in build settings or Info.plist
- Review for technical jargon
- Suggest user-friendly alternatives
- Provide code/configuration updates
Example 3: Timeline Estimation
User: "How long until I can submit?"
Process:
- Analyze current state
- Identify all blockers (critical, high, medium priority)
- Estimate time per issue
- Account for Apple review time (typically 1-3 days)
- Provide optimistic, realistic, and conservative timelines
Validation Scripts
The skill includes Python scripts for automated validation:
scripts/validate_privacy.py
Checks Info.plist and build settings for required privacy descriptions
scripts/validate_assets.py
Validates app icon sizes and screenshot requirements
scripts/analyze_xcode_project.py
Extracts configuration from Xcode project files
Reference Materials
Detailed Checklists
- references/code-audit-checklist.md - Comprehensive code quality checks
- references/privacy-checklist.md - Privacy and permissions validation
- references/rejection-patterns.md - Database of common rejection reasons with fixes
- references/privacy-strings-examples.md - User-friendly privacy description templates
Best Practices
When Auditing Code
- Start with blockers - Focus on critical issues that will cause instant rejection
- Check in order: Privacy → Code Quality → Assets → Metadata
- Provide specific file:line references when identifying issues
- Suggest fixes, not just problems - Include code snippets for solutions
- Estimate effort realistically - Account for testing time
When Generating Checklists
- Prioritize by impact - CRITICAL → HIGH → MEDIUM → LOW
- Group related items - Bundle similar fixes together
- Provide time estimates - Help user plan submission timeline
- Include verification steps - How to confirm each fix works
When Providing Privacy Strings
- User-centric language - Explain benefits, not technical requirements
- Be specific - "take photos for your profile" vs "camera access"
- Emphasize value - "personalize reports" vs "store images"
- Avoid jargon - No mentions of "API", "background processing", etc.
Output Formats
Submission Readiness Report
# App Store Submission Status
**App Name**: [App Name]
**Bundle ID**: [com.company.app]
**Current Status**: [X]% Ready
## ✅ Passing (What's Working)
- Clean build with zero warnings
- All tests passing
- Code signing configured
...
## ⚠️ Issues Found
| Priority | Issue | File | Estimated Fix Time |
|----------|-------|------|-------------------|
| CRITICAL | Missing app icon | Assets.xcassets | 1-2 hours |
...
## 📋 Action Items
1. [CRITICAL] Create app icon (1-2 hours)
2. [HIGH] Add privacy manifest (30 min)
...
## ⏱️ Timeline Estimate
- Optimistic: 2-3 days
- Realistic: 3-5 days
- Conservative: 5-7 days
(Including Apple review: +1-3 days)
Issue Detail Format
For each identified issue:
### [Priority] Issue Title
**File**: path/to/file.swift
**Lines**: 123-145
**Risk**: What could go wrong
**Fix**: Specific solution with code example
**Verification**: How to test the fix worked
Advanced Features
Xcode Project Parsing
Parse .pbxproj files to extract:
- Bundle identifier
- Version and build numbers
- Build configurations
- Entitlements
- Frameworks and dependencies
- Privacy usage descriptions
Build Settings Analysis
Analyze build settings for:
- Code signing configuration
- Deployment target
- Architecture settings (arm64)
- Optimization levels
- Swift version
Automated Fix Suggestions
For common issues, provide executable solutions:
- Privacy string templates ready to copy
- Code snippets with proper thread safety
- Accessibility label examples
- Input validation patterns
Integration with Claude Code
When used via Claude Code (terminal-based development):
- Respect file locations - Read from actual project paths
- Generate diffs - Show before/after for proposed changes
- Create fix scripts - When appropriate, generate one-time scripts for bulk fixes
- Update multiple files - Handle multi-file fixes in single operation
- Preserve formatting - Maintain existing code style and conventions
Tips for Success
- Run audit early - Don't wait until submission day
- Fix critical issues first - Some issues block submission entirely
- Test fixes thoroughly - Build and run after each major change
- Document changes - Keep track of what was fixed for resubmissions
- Plan for iteration - First submission may be rejected; have time buffer
Version-Specific Notes
iOS 18+:
- Privacy manifest required for certain APIs
- Enhanced privacy descriptions expected
Xcode 15+:
- Build settings location changed (often in
.pbxproj vs Info.plist)
- Asset catalog requirements stricter
App Store Review Guidelines (Latest):
- Increased scrutiny on data collection
- Stricter enforcement of metadata accuracy
- Enhanced accessibility requirements
Limitations
This skill does NOT:
- Test the actual app (user must do manual testing)
- Generate app icons or screenshots (user must create assets)
- Submit to App Store Connect (user must do final submission)
- Make changes without user approval (always suggests, never modifies directly without confirmation)
Next Steps After This Skill
Once submission is complete:
- Monitor App Store Connect for review status
- Respond promptly to any App Review questions
- Plan for post-approval marketing
- Prepare for updates and maintenance
Remember: This skill provides guidance and validation. Always review suggestions carefully and test thoroughly before submitting.