ios-app-store-readiness
App Store submission readiness checklist covering privacy manifests, export compliance, permission usage descriptions, App Tracking Transparency, Sign in with…
Skill by apexbymanish
Chalk Labs
Need help deploying ios-app-store-readiness?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/apexbymanish-ios-app-store-readiness
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ios-app-store-readiness
What's inside
- Skill name
ios-app-store-readiness- Description
- App Store submission readiness checklist covering privacy manifests, export compliance, permission usage descriptions, App Tracking Transparency, Sign in with Apple parity, and common rejection triggers. Use when asked "is this ready to submit", "will this get rejected", or to check App Store compliance before release.
- License
- MIT
- Instructions
- 116 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# iOS App Store Readiness
A pre-submission audit, not a guarantee — Apple's actual review process
has human judgment calls this can't predict. This procedure catches the
mechanical, code-visible reasons apps get rejected or delayed.
## 1. Privacy manifest
```bash
find . -name "PrivacyInfo.xcprivacy"
```
If present, check it against actual code:
- **Required-reason API usage** — APIs Apple requires a declared reason
for (e.g. `UserDefaults`, file timestamp APIs, disk-space APIs,
system-boot-time APIs) are declared in the manifest if the code
actually calls them.
- **Collected data types** — types declared match what the code and its
dependencies actually collect, and whether each is linked to the
user's identity or used for tracking.
- **Third-party SDK manifests** — SDKs that ship their own privacy
manifest are current; SDKs that collect data but ship none are a gap
to flag.
If no `PrivacyInfo.xcprivacy` exists and the app uses any required-reason
API or third-party SDKs that collect data, flag this as a submission
blocker, not a nice-to-have.
## 2. Export compliance
```bash
grep -rn "ITSAppUsesNonExemptEncryption" **/*.plist 2>/dev/null
grep -rln "CommonCrypto\|CryptoKit\|SecKey" --include="*.swift" .
```
- Standard HTTPS/TLS usage is export-exempt; check whether the app also
implements custom cryptography (`CommonCrypto`, `CryptoKit` beyond
standard TLS, custom `SecKey` usage) that would need its own export
compliance documentation, not just the standard exemption.
- `ITSAppUsesNonExemptEncryption` should be set to match reality — set
to `false` when only using standard exempt encryption avoids an
unnecessary compliance question at every submission.
## 3. Permission usage descriptions
```bash
grep -o 'NS[A-Za-z]*UsageDescription' **/*.plist 2>/dev/null
grep -rln "AVCaptureDevice\|CLLocationManager\|PHPhotoLibrary\|EventKit\|CNContactStore\|AVAudioSession.*record" --include="*.swift" .
```
Cross-reference: every permission-gated API actually used in code
(camera, location, photos, contacts, calendar, microphone, etc.) needs
a matching `NS*UsageDescription` string in Info.plist, **and** that
string should explain *why* the app needs it, not just restate the
permission name — "This app uses your location" gets rejected far more
often than "Used to show restaurants near you." Flag both a missing
description string and a present-but-generic one.
## 4. App Tracking Transparency
```bash
grep -rln "AppTrackingTransparency\|ATTrackingManager\|AdSupport" --include="*.swift" .
grep "NSUserTrackingUsageDescription" **/*.plist 2>/dev/null
```
If the app uses IDFA or any tracking-adjacent API, it needs
`NSUserTrackingUsageDescription` and must show the ATT prompt
(`ATTrackingManager.requestTrackingAuthorization`) before tracking
actually begins, not after.
## 5. Sign in with Apple parity
```bash
grep -rln "GIDSignIn\|FBSDKLoginKit\|GoogleSignIn" --include="*.swift" .
grep -rln "ASAuthorizationAppleIDProvider\|SignInWithAppleButton" --include="*.swift" .
```
If the app offers a third-party social login (Google, Facebook, etc.)
as a primary sign-in option, Apple requires offering Sign in with Apple
as an equivalent option. This is one of the most common non-obvious
rejection reasons — flag it explicitly if a third-party login is found
without a corresponding Sign in with Apple implementation.
## 6. Unused entitlements & background modes
```bash
find . -name "*.entitlements" -exec cat {} \;
grep -A10 "UIBackgroundModes" **/*.plist 2>/dev/null
```
A requested capability or background mode with no corresponding code
usage is both an unnecessary rejection risk and unnecessary attack
surface (see `ios-security-review` for the security angle on this same
check — don't duplicate that audit here, just flag the App Store risk).
## 7. Common code-level rejection triggers
- Placeholder or "Lorem ipsum" text/images left in shipped UI.
- Obvious crash-on-launch conditions (force-unwraps on data that could
be missing at first launch, e.g. a nil server response).
- Broken or `http://`-only links to external content (also flagged in
`ios-security-review`'s transport-security check).
- Any in-app purchase or subscription code that doesn't go through
StoreKit (App Store rules require IAP for digital goods/services).
## Reporting
Close with the `ios-evidence-reporting` skill's status block (e.g.
`PRIVACY-MANIFEST`, `EXPORT-COMPLIANCE`, `PERMISSIONS`, `ATT`,
`SIGN-IN-PARITY`, `ENTITLEMENTS`) — only categories actually relevant to
what was reviewed, each backed by the file:line evidence or command
output already shown above. This is a code-visible audit only —
metadata, screenshots, and app description content need a human's
review in App Store Connect and are out of scope here.From apexbymanish/claude-ai-agents-ios, MIT.
More from apexbymanish/claude-ai-agents-ios
- 0.524score
swiftui-engineering
apexbymanish
Procedure for reviewing SwiftUI code for state-ownership, view-identity, lifecycle, and rendering correctness — distinct from ios-ux-reviewer's visual/HIG…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-accessibility
apexbymanish
Procedure for reviewing and verifying iOS accessibility — VoiceOver, Dynamic Type, contrast, hit targets, Switch Control, Reduce Motion — with an explicit…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-api-availability
apexbymanish
Procedure for determining whether code actually works at a project's stated minimum iOS version — deployment target vs.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-testing-strategy
apexbymanish
Step-by-step procedure for adding tests to existing Swift/iOS code, whether untested legacy code or new TDD work.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-feature-implementation
apexbymanish
Structured procedure for implementing a new feature or change in an existing iOS codebase — inspect and explain before touching files, then implement, then…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-legacy-mapping
apexbymanish
Step-by-step procedure for mapping an undocumented, unfamiliar, or large legacy iOS codebase (Objective-C, UIKit, SwiftUI, or a mix) before making changes.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-performance-measurement
apexbymanish
Procedure for confirming a performance fix actually worked, with a real number, instead of asserting improvement from reading code.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-security-review
apexbymanish
Comprehensive security audit procedure for iOS/Swift code covering data storage, transport security, authentication, input validation, deep links, third-party…
SkillBFreshness: BClaude Code +9 - 0.524score
swift-concurrency
apexbymanish
Procedure for reviewing real Swift code for concurrency correctness — async/await, actors, Sendable, cancellation, task lifetime — not a Swift Concurrency…
SkillBFreshness: BClaude Code +9 - 0.521score
ios-evidence-reporting
apexbymanish
Standard for reporting task outcomes with verifiable evidence instead of confident prose.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 28, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from apexbymanish
- 0.524score
swiftui-engineering
apexbymanish
Procedure for reviewing SwiftUI code for state-ownership, view-identity, lifecycle, and rendering correctness — distinct from ios-ux-reviewer's visual/HIG…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-accessibility
apexbymanish
Procedure for reviewing and verifying iOS accessibility — VoiceOver, Dynamic Type, contrast, hit targets, Switch Control, Reduce Motion — with an explicit…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-api-availability
apexbymanish
Procedure for determining whether code actually works at a project's stated minimum iOS version — deployment target vs.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-testing-strategy
apexbymanish
Step-by-step procedure for adding tests to existing Swift/iOS code, whether untested legacy code or new TDD work.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-feature-implementation
apexbymanish
Structured procedure for implementing a new feature or change in an existing iOS codebase — inspect and explain before touching files, then implement, then…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-legacy-mapping
apexbymanish
Step-by-step procedure for mapping an undocumented, unfamiliar, or large legacy iOS codebase (Objective-C, UIKit, SwiftUI, or a mix) before making changes.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get ios-app-store-readiness running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
ios-app-store-readiness skill. Agent Mart. https://agentmart.dev/skills/apexbymanish-ios-app-store-readiness (last updated 2026-10-24)