Odevio
Odevio/Odevio-CLI
Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skills --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .claude/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skills --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .agents/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skills --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .cursor/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skills --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .gemini/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skillsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .github/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install truongduy2611/app-store-preflight-skills app-store-preflight-skills --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "app-store-preflight-skills" agent skill from https://github.com/truongduy2611/app-store-preflight-skills/tree/main into .opencode/skills/app-store-preflight-skills/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-preflight-skills", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
app-store-preflight-skillsScan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
App Store Preflight Skills is an agent skill from truongduy2611/app-store-preflight-skills. Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission. Use when preparing an app for App Store review, after receiving a rejection from Apple, or when auditing metadata, subscriptions, privacy manifests, entitlements, or design compliance. Integrates with the asc CLI for metadata inspection.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 36 other files, including reference files (for example `README.md`, `references/guidelines/README.md` and `references/guidelines/by-app-type/ai_apps.md`).
It sits in Mobile, covering App store release. It works with App Store Connect, macOS, iOS and Xcode. The repository describes itself as: AI agent skill to scan iOS/macOS projects for App Store rejection patterns before submission. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e52e007. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
brewFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ASC_KEY_IDASC_PRIVATE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
App Store Preflight Skills loads about 1.4k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 89 tokens; SKILL.md has 463 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from truongduy2611/app-store-preflight-skills at commit e52e007, republished under its MIT licence (© truongduy2611). 463 words, ~1,385 tokens.
.claude/skills/app-store-preflight-skills/SKILL.md (or your agent's skills folder). This skill also uses 31 other files; get the full folder from GitHub.Run pre-submission checks on your iOS/macOS project to catch common App Store rejection patterns.
brew install asc (App-Store-Connect-CLI)asc usage patternsDetermine which guidelines apply by loading the relevant checklist from references/guidelines/by-app-type/. Always start with all_apps.md, then add the app-type-specific one:
| App Type | Checklist |
|---|---|
| Every app | references/guidelines/by-app-type/all_apps.md |
| Subscriptions / IAP | references/guidelines/by-app-type/subscription_iap.md |
| Social / UGC | references/guidelines/by-app-type/social_ugc.md |
| Kids Category | references/guidelines/by-app-type/kids.md |
| Health & Fitness | references/guidelines/by-app-type/health_fitness.md |
| Games | references/guidelines/by-app-type/games.md |
| macOS | references/guidelines/by-app-type/macos.md |
| AI / Generative AI | references/guidelines/by-app-type/ai_apps.md |
| Crypto & Finance | references/guidelines/by-app-type/crypto_finance.md |
| VPN | references/guidelines/by-app-type/vpn.md |
Full guideline index: references/guidelines/README.md
Pull the latest App Store metadata using the asc CLI:
# Pull canonical metadata JSON for the version you want to review
asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadataasc metadata pull writes app info files to ./metadata/app-info/*.json and
version-localization files to ./metadata/version/<VERSION>/*.json.
Most rule examples below assume the canonical JSON layout written by
asc metadata pull.
If you already have metadata in another layout (for example fastlane
metadata/), either adapt the file-path examples to that structure or pull the
canonical asc layout first.
For each category, load the relevant rule files from references/rules/ and inspect. Each rule contains: What to Check, How to Detect, Resolution, and Example Rejection.
| Category | Rule Files |
|---|---|
| Metadata | references/rules/metadata/*.md |
| Subscription | references/rules/subscription/*.md |
| Privacy | references/rules/privacy/*.md |
| Design | references/rules/design/*.md |
| Entitlements | references/rules/entitlements/*.md |
Produce a summary report using this template:
## Preflight Report
### ❌ Rejections Found (N)
- [GUIDELINE X.X.X] Description of issue
- File: path/to/offending/file
- Fix: What to do
### ⚠️ Warnings (N)
- [GUIDELINE X.X.X] Potential issue
### ✅ Passed (N)
- [Category] All checks passedOrder by severity: rejections first, then warnings, then passed.
Some issues can be auto-fixed:
After applying any auto-fix, re-run the affected checks to confirm the fix resolved the violation. Only mark as resolved once the re-scan passes.
For issues requiring manual intervention (screenshots, UI redesign), provide clear instructions but do not auto-fix.
zh-Hans. Apple checks every locale visible in the China storefront.PrivacyInfo.xcprivacy is required even if your app doesn't call Required Reason APIs directly. Third-party SDKs (Firebase, Amplitude, etc.) that use UserDefaults or NSFileManager trigger this requirement transitively.asc metadata pull requires App Store Connect authentication. Run asc auth login first, or set ASC_KEY_ID, ASC_ISSUER_ID, and one of ASC_PRIVATE_KEY_PATH / ASC_PRIVATE_KEY / ASC_PRIVATE_KEY_B64. If you're unsure what asc is picking up, run asc auth doctor.com.apple.security.temporary-exception.*). Remove entitlements you don't actively use.Create a .md file in the appropriate references/rules/ subdirectory:
# Rule: [Short Title]
- **Guideline**: [Apple Guideline Number]
- **Severity**: REJECTION | WARNING
- **Category**: metadata | subscription | privacy | design | entitlements
## What to Check
## How to Detect
## Resolution
## Example Rejection© truongduy2611, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 31 other files (references) in the repository root of truongduy2611/app-store-preflight-skills.
Open the folder on GitHubat commit e52e007
App Store Preflight Skills next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| App Store Preflight Skills this skilltruongduy2611/app-store-preflight-skills | 1.4k | — | ~1.4k | Automated safety check: Pass | MIT | |
| OdevioOdevio/Odevio-CLI | 423 | — | ~7.6k | Automated safety check: Pass | MIT | |
| Asc Xcode Buildrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| App Releaseglebis/claude-skills | 391 | — | ~1.4k | Automated safety check: Pass | MIT | |
| CI CD Setuprshankras/claude-code-apple-skills | 787 | — | ~1.5k | Automated safety check: Notes | MIT | |
| iOS App Store SubmitZestfulPulse/ios-app-store-submit | 142 | — | ~4.7k | Automated safety check: Pass | MIT |
Odevio/Odevio-CLI
Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.
rorkai/app-store-connect-cli-skills
Build, archive, generate export options, export, upload, and manage Xcode version/build numbers with the current asc xcode helpers.
glebis/claude-skills
End-to-end pipeline for releasing an iOS / watchOS app to TestFlight and the App Store.
rshankras/claude-code-apple-skills
Generate CI/CD configuration for automated builds, tests, and distribution of iOS/macOS apps.
ZestfulPulse/ios-app-store-submit
Build, sign, and submit a Flutter/iOS app to the App Store Connect — covers Xcode archive/export, code signing (including headless-Mac keychain workarounds), the asc CLI for App Store Connect…
icodesign/remote-installer
Put an iOS or Android build on a real phone or tablet over the air with the remote-installer CLI — it validates the build, opens a temporary HTTPS tunnel, and prints one or more install URLs plus QR…
Works with
Categories
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission. App Store Preflight Skills is an agent skill from truongduy2611/app-store-preflight-skills. Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
App Store Preflight Skills fits situations like: preparing an app for App Store review; after receiving a rejection from Apple; auditing metadata; privacy manifests.
Run `npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a claude-code`. Or copy the skill folder (the truongduy2611/app-store-preflight-skills repository) into .claude/skills/app-store-preflight-skills in your project. Claude Code loads it when a task matches its description.
Run `npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a codex`. Or copy the skill folder (the truongduy2611/app-store-preflight-skills repository) into .agents/skills/app-store-preflight-skills in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-store-preflight-skills, .gemini/skills/app-store-preflight-skills, .github/skills/app-store-preflight-skills and .opencode/skills/app-store-preflight-skills in your project.
Going by SKILL.md and its folder, App Store Preflight Skills needs the command-line tools its instructions call (brew) and credentials named ASC_KEY_ID and ASC_PRIVATE_KEY. Our summary lists: A credential in ASC_PRIVATE_KEY.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
App Store Preflight Skills is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with App Store Preflight Skills: Odevio (Odevio/Odevio-CLI, 423 stars), Asc Xcode Build (rorkai/app-store-connect-cli-skills, 1.1k stars), App Release (glebis/claude-skills, 391 stars) and CI CD Setup (rshankras/claude-code-apple-skills, 787 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
truongduy2611 (a GitHub user) maintains it in truongduy2611/app-store-preflight-skills, which has 1,384 GitHub stars. The repository was last updated on May 29, 2026.
Source: truongduy2611/app-store-preflight-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.