App Store Preflight Skills
truongduy2611/app-store-preflight-skills
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
iOS/macOS app automation — builds, signing, TestFlight, App Store via CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill fastlane -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fastlane --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fastlane .claude/skills/fastlane && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .claude/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlaneType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill fastlane -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fastlane --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/fastlane .agents/skills/fastlane && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .agents/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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 LeoYeAI/openclaw-master-skills --skill fastlane -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fastlane --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/fastlane .cursor/skills/fastlane && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .cursor/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/fastlane--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill fastlane -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fastlane --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/fastlane .gemini/skills/fastlane && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .gemini/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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 LeoYeAI/openclaw-master-skills fastlaneInstalls 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 LeoYeAI/openclaw-master-skills --skill fastlane -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/fastlane .github/skills/fastlane && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .github/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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 LeoYeAI/openclaw-master-skills --skill fastlane -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fastlane --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/fastlane .opencode/skills/fastlane && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fastlane" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fastlane into .opencode/skills/fastlane/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastlane", 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.
fastlaneiOS/macOS app automation — builds, signing, TestFlight, App Store via CLI
Fastlane is an agent skill from LeoYeAI/openclaw-master-skills. iOS/macOS app automation — builds, signing, TestFlight, App Store via CLI
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Mobile, covering App store release. It works with App Store Connect, iOS and macOS. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. 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:
brewgemFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
appstoreconnect.apple.comappleid.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
APP_STORE_CONNECT_API_KEY_KEY_IDAPP_STORE_CONNECT_API_KEY_KEYFASTLANE_PASSWORDFASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORDMATCH_PASSWORDFASTLANE_DONT_STORE_PASSWORDMATCH_KEYCHAIN_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fastlane loads about 4.7k tokens when it runs. Until then it costs about 21 tokens; SKILL.md has 1,324 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 noted patterns worth knowing about, such as sudo or a known installer.
sudo gem install fastlane -NVAutomated 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 LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,324 words, ~4,659 tokens.
.claude/skills/fastlane/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Automate iOS and macOS builds, code signing, TestFlight distribution, and App Store submissions — all from one-off CLI commands. No Fastfile required.
fastlane --versionIf not installed:
brew install fastlaneOr via RubyGems:
sudo gem install fastlane -NVAfter install, add to your shell profile:
export PATH="$HOME/.fastlane/bin:$PATH"API keys avoid 2FA prompts and are the recommended approach for automation and CI.
.p8 file.export APP_STORE_CONNECT_API_KEY_KEY_ID="XXXXXXXXXX"
export APP_STORE_CONNECT_API_KEY_ISSUER_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
export APP_STORE_CONNECT_API_KEY_KEY_FILEPATH="/path/to/AuthKey_XXXXXXXXXX.p8"Or pass the key inline as JSON:
export APP_STORE_CONNECT_API_KEY_KEY='{"key_id":"XXXXXXXXXX","issuer_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","key_filepath":"/path/to/AuthKey.p8"}'Agent guidance: Always prefer API key authentication. Only fall back to Apple ID when the user explicitly does not have API key access.
export FASTLANE_USER="user@example.com"
export FASTLANE_PASSWORD="app-specific-password"Generate an app-specific password at appleid.apple.com. If 2FA is enabled, you may also need:
export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD="xxxx-xxxx-xxxx-xxxx"
export SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER="+1 (xxx) xxx-xxxx"| Variable | Purpose |
|---|---|
APP_STORE_CONNECT_API_KEY_KEY_ID | API key ID from App Store Connect |
APP_STORE_CONNECT_API_KEY_ISSUER_ID | Issuer ID from App Store Connect |
APP_STORE_CONNECT_API_KEY_KEY_FILEPATH | Path to the .p8 private key file |
APP_STORE_CONNECT_API_KEY_KEY | Inline JSON containing all key fields |
FASTLANE_USER | Apple ID email |
FASTLANE_PASSWORD | Apple ID password or app-specific password |
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD | App-specific password for 2FA accounts |
MATCH_PASSWORD | Encryption password for match certificates repo |
MATCH_GIT_URL | Git URL for match certificates repository |
Fastlane actions can be run directly from the CLI without a Fastfile:
fastlane run <action_name> key:value key2:value2Discover available actions:
fastlane actions # List all actions
fastlane action <action_name> # Show details for one action
fastlane search_actions <query> # Search by keywordAgent guidance: Use
fastlane run <action>for one-off tasks. This is the core pattern — every section below shows both the shorthand tool command and thefastlane runequivalent.
fastlane pilot upload --ipa "/path/to/App.ipa"Equivalent:
fastlane run upload_to_testflight ipa:"/path/to/App.ipa"With API key:
fastlane pilot upload \
--ipa "/path/to/App.ipa" \
--api_key_path "/path/to/api_key.json"fastlane pilot builds# Add a tester
fastlane pilot add email:"tester@example.com" group_name:"Beta Testers"
# Remove a tester
fastlane pilot remove email:"tester@example.com"
# List testers
fastlane pilot listfastlane pilot distribute \
--build_number "42" \
--groups "External Beta" \
--changelog "Bug fixes and performance improvements"| Flag | Purpose |
|---|---|
--ipa | Path to IPA file |
--app_identifier | Bundle ID (e.g., com.example.app) |
--skip_waiting_for_build_processing | Don't wait for Apple's processing |
--distribute_external | Send to external testers |
--groups | Tester group names (comma-separated) |
--changelog | What to Test text |
--beta_app_review_info | JSON with review info |
fastlane deliver --ipa "/path/to/App.ipa" --submit_for_reviewEquivalent:
fastlane run upload_to_app_store ipa:"/path/to/App.ipa" submit_for_review:truefastlane deliver --skip_binary_upload --skip_screenshotsfastlane deliver --skip_binary_upload --skip_metadatafastlane deliver download_metadata --app_identifier "com.example.app"fastlane deliver download_screenshots --app_identifier "com.example.app"| Flag | Purpose |
|---|---|
--ipa | Path to IPA file |
--pkg | Path to PKG file (macOS) |
--app_identifier | Bundle ID |
--submit_for_review | Auto-submit after upload |
--automatic_release | Release automatically after approval |
--force | Skip HTML preview verification |
--skip_binary_upload | Metadata/screenshots only |
--skip_metadata | Binary/screenshots only |
--skip_screenshots | Binary/metadata only |
--metadata_path | Custom metadata folder path |
--screenshots_path | Custom screenshots folder path |
--phased_release | Enable phased release |
--reject_if_possible | Reject current version before uploading |
fastlane gym \
--workspace "App.xcworkspace" \
--scheme "App" \
--export_method "app-store" \
--output_directory "./build"Equivalent:
fastlane run build_app \
workspace:"App.xcworkspace" \
scheme:"App" \
export_method:"app-store" \
output_directory:"./build"fastlane gym \
--project "App.xcodeproj" \
--scheme "App" \
--export_method "app-store"| Method | Use Case |
|---|---|
app-store | App Store and TestFlight submission |
ad-hoc | Direct device installation via profile |
development | Debug builds for registered devices |
enterprise | In-house enterprise distribution |
developer-id | macOS distribution outside App Store |
mac-application | macOS App Store |
validation | Validate without exporting |
| Flag | Purpose |
|---|---|
--workspace | Path to .xcworkspace |
--project | Path to .xcodeproj |
--scheme | Build scheme |
--configuration | Build config (Debug/Release) |
--export_method | See export methods table |
--output_directory | Where to save the IPA |
--output_name | Custom IPA filename |
--clean | Clean before building |
--include_bitcode | Include bitcode |
--include_symbols | Include dSYM symbols |
--xcargs | Extra xcodebuild arguments |
--derived_data_path | Custom DerivedData path |
--catalyst_platform | macos or ios for Catalyst apps |
Agent guidance: If the project has a
.xcworkspace(e.g., uses CocoaPods or SPM), always use--workspace. Only use--projectwhen there is no workspace.
Sync certificates and provisioning profiles from a shared Git repo or cloud storage.
fastlane match appstore --app_identifier "com.example.app"Equivalent:
fastlane run sync_code_signing type:"appstore" app_identifier:"com.example.app"fastlane match development --app_identifier "com.example.app"fastlane match adhoc --app_identifier "com.example.app"fastlane match appstore --readonly --app_identifier "com.example.app"Agent guidance: Always use
--readonlyon CI servers. This prevents accidentally creating new certificates and disrupting the team.
# Remove all certificates and profiles for a type
fastlane match nuke appstore
fastlane match nuke developmentWarning: Nuke is destructive and irreversible. Always confirm with the user before running nuke commands.
| Flag | Purpose |
|---|---|
--type | appstore, development, adhoc, enterprise |
--app_identifier | Bundle ID(s), comma-separated for multiple |
--git_url | Git repo URL for certificates |
--readonly | Don't create new certs/profiles |
--force | Renew existing profile |
--team_id | Apple Developer team ID |
--storage_mode | git, google_cloud, s3 |
--verbose | Detailed output |
Agent guidance: Prefer
matchovercert + sighfor teams. It centralizes signing and avoids the "works on my machine" problem.
fastlane scan \
--workspace "App.xcworkspace" \
--scheme "AppTests" \
--device "iPhone 16 Pro"Equivalent:
fastlane run run_tests \
workspace:"App.xcworkspace" \
scheme:"AppTests" \
device:"iPhone 16 Pro"fastlane scan \
--workspace "App.xcworkspace" \
--scheme "AppTests" \
--devices "iPhone 16 Pro,iPad Pro (13-inch) (M4)"fastlane scan \
--scheme "AppTests" \
--output_types "html,junit" \
--output_directory "./test_results"| Flag | Purpose |
|---|---|
--workspace | Path to .xcworkspace |
--project | Path to .xcodeproj |
--scheme | Test scheme |
--device | Simulator device name |
--devices | Multiple simulators (comma-separated) |
--output_types | html, junit, json |
--output_directory | Where to save results |
--code_coverage | Enable code coverage |
--clean | Clean before testing |
--fail_build | Fail on test failures (default: true) |
--xcargs | Extra xcodebuild arguments |
--result_bundle | Generate Xcode result bundle |
Capture App Store screenshots across devices and languages automatically.
fastlane snapshot \
--workspace "App.xcworkspace" \
--scheme "AppUITests" \
--devices "iPhone 16 Pro Max,iPhone SE (3rd generation),iPad Pro (13-inch) (M4)" \
--languages "en-US,es-ES,fr-FR" \
--output_directory "./screenshots"Equivalent:
fastlane run capture_screenshots \
workspace:"App.xcworkspace" \
scheme:"AppUITests" \
devices:"iPhone 16 Pro Max,iPhone SE (3rd generation),iPad Pro (13-inch) (M4)" \
languages:"en-US,es-ES,fr-FR" \
output_directory:"./screenshots"| Flag | Purpose |
|---|---|
--workspace | Path to .xcworkspace |
--scheme | UI test scheme with snapshot calls |
--devices | Simulator names (comma-separated) |
--languages | Locale codes (comma-separated) |
--output_directory | Where to save screenshots |
--clear_previous_screenshots | Clean output folder first |
--stop_after_first_error | Abort on first failure |
--override_status_bar | Clean status bar (9:41, full battery) |
Standalone certificate and provisioning profile management.
fastlane cert --development
fastlane cert # Distribution certificate by defaultEquivalent:
fastlane run get_certificates development:true# App Store profile
fastlane sigh --app_identifier "com.example.app"
# Development profile
fastlane sigh --development --app_identifier "com.example.app"
# Ad hoc profile
fastlane sigh --adhoc --app_identifier "com.example.app"Equivalent:
fastlane run get_provisioning_profile app_identifier:"com.example.app"fastlane sigh repair| Flag | Purpose |
|---|---|
--development | Development cert/profile |
--adhoc | Ad hoc profile |
--app_identifier | Bundle ID |
--team_id | Developer team ID |
--output_path | Where to save profile |
--force | Renew even if current is valid |
--readonly | Don't create, only fetch |
Agent guidance: For individual developers,
cert + sighworks fine. For teams, recommendmatchinstead — it prevents certificate conflicts.
Validate app metadata before submitting to avoid App Store Review rejections.
fastlane precheck --app_identifier "com.example.app"Equivalent:
fastlane run check_app_store_metadata app_identifier:"com.example.app"Generate push notification certificates for APNs.
fastlane pem --app_identifier "com.example.app" --output_path "./certs"Equivalent:
fastlane run get_push_certificate app_identifier:"com.example.app" output_path:"./certs"| Flag | Purpose |
|---|---|
--app_identifier | Bundle ID |
--output_path | Where to save certs |
--development | Development push cert |
--generate_p12 | Also generate .p12 file |
--p12_password | Password for .p12 |
--force | Create new even if existing is valid |
--team_id | Developer team ID |
Agent guidance: For modern projects using token-based APNs (
.p8key), push certs are unnecessary. Only usepemif the project specifically uses certificate-based APNs.
Add device bezels and titles to screenshots for App Store presentation.
fastlane frameit --path "./screenshots"With titles:
fastlane frameit silver --path "./screenshots"Equivalent:
fastlane run frame_screenshots path:"./screenshots"A Framefile.json in the screenshots directory controls titles, fonts, and colors.
fastlane gym \
--workspace "App.xcworkspace" \
--scheme "App" \
--export_method "app-store" \
--output_directory "./build" && \
fastlane pilot upload \
--ipa "./build/App.ipa" \
--changelog "Latest build from CI"fastlane gym \
--workspace "App.xcworkspace" \
--scheme "App" \
--export_method "app-store" \
--output_directory "./build" && \
fastlane deliver \
--ipa "./build/App.ipa" \
--submit_for_review \
--automatic_release \
--forcefastlane match appstore \
--app_identifier "com.example.app" \
--readonly && \
fastlane gym \
--workspace "App.xcworkspace" \
--scheme "App" \
--export_method "app-store" \
--output_directory "./build" && \
fastlane pilot upload \
--ipa "./build/App.ipa"fastlane scan \
--workspace "App.xcworkspace" \
--scheme "AppTests" && \
fastlane gym \
--workspace "App.xcworkspace" \
--scheme "App" \
--export_method "app-store" \
--output_directory "./build" && \
fastlane pilot upload \
--ipa "./build/App.ipa"fastlane snapshot \
--workspace "App.xcworkspace" \
--scheme "AppUITests" \
--output_directory "./screenshots" && \
fastlane frameit silver --path "./screenshots" && \
fastlane deliver --skip_binary_upload --skip_metadata| Variable | Purpose |
|---|---|
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT | Timeout for xcodebuild settings (seconds) |
FASTLANE_XCODEBUILD_SETTINGS_RETRIES | Retry count for xcodebuild |
FASTLANE_OPT_OUT_USAGE | Set to YES to disable analytics |
FL_OUTPUT_DIR | Default output directory |
FASTLANE_SKIP_UPDATE_CHECK | Skip update prompts |
FASTLANE_HIDE_TIMESTAMP | Hide log timestamps |
FASTLANE_DISABLE_COLORS | Disable colored output |
| Variable | Purpose |
|---|---|
CI | Set to true on CI environments |
FASTLANE_DONT_STORE_PASSWORD | Don't save passwords to keychain |
MATCH_KEYCHAIN_NAME | Keychain name for CI |
MATCH_KEYCHAIN_PASSWORD | Keychain password for CI |
| Variable | Purpose |
|---|---|
GYM_WORKSPACE | Default workspace path |
GYM_SCHEME | Default scheme |
GYM_OUTPUT_DIRECTORY | Default output directory |
GYM_EXPORT_METHOD | Default export method |
SCAN_WORKSPACE | Default workspace for tests |
SCAN_SCHEME | Default test scheme |
SCAN_DEVICE | Default test device |
fastlane run parameters use key:value syntax (no dashes, no equals signs).fastlane gym, fastlane pilot) use --key value or --key "value" syntax.true/false for fastlane run, --flag/no flag for shorthand.devices:"iPhone 16,iPad Pro").fastlane spaceauth -u user@example.com or refresh API key.fastlane match to sync, or security find-identity -v -p codesigning to verify local certs.app_identifier matches the bundle ID registered in App Store Connect.FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120 and retry.fastlane sigh repair or fastlane match with --force.When a user asks to "deploy" or "release" an iOS app, the typical flow is: match (sign) → gym (build) → pilot (TestFlight) or deliver (App Store).
If the user has a
Fastfile, respect it. But for one-off commands, always use the CLI syntax shown in this skill.
Always check for an existing
.xcworkspacebefore defaulting to.xcodeproj. Runls *.xcworkspaceto verify.
For CI environments, always use
--readonlywith match and set theCI=trueenvironment variable.
When in doubt about which action to use, run
fastlane actionsorfastlane search_actions <keyword>to discover the right one.
© LeoYeAI, 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 1 other file in skills/fastlane of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Fastlane 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 |
|---|---|---|---|---|---|---|
| Fastlane this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.7k | Automated safety check: Notes | MIT | |
| App Store Preflight Skillstruongduy2611/app-store-preflight-skills | 1.4k | — | ~1.4k | Automated safety check: Pass | MIT | |
| OdevioOdevio/Odevio-CLI | 423 | — | ~7.6k | Automated safety check: Pass | MIT | |
| Releasevaayne/mori | 303 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Asc Xcode Buildrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Appstore Releasekmworks/kmreader | 113 | — | ~2.5k | Automated safety check: Pass | MIT |
truongduy2611/app-store-preflight-skills
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
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.
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
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.
kmworks/kmreader
Coordinate the KMReader App Store release workflow. An agent skill from kmworks/kmreader.
KeeForge/KeeForge
Ship an accepted, soaked KeeForge candidate across iOS, Mac App Store, and direct Mac.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
iOS/macOS app automation — builds, signing, TestFlight, App Store via CLI. Fastlane is an agent skill from LeoYeAI/openclaw-master-skills.
Fastlane fits situations like: tasks that involve App store release.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill fastlane -a claude-code`. Or copy the skill folder (skills/fastlane in LeoYeAI/openclaw-master-skills) into .claude/skills/fastlane in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill fastlane -a codex`. Or copy the skill folder (skills/fastlane in LeoYeAI/openclaw-master-skills) into .agents/skills/fastlane 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 LeoYeAI/openclaw-master-skills --skill fastlane -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fastlane, .gemini/skills/fastlane, .github/skills/fastlane and .opencode/skills/fastlane in your project.
Going by SKILL.md and its folder, Fastlane needs the command-line tools its instructions call (brew and gem) and credentials named APP_STORE_CONNECT_API_KEY_KEY_ID, APP_STORE_CONNECT_API_KEY_KEY, FASTLANE_PASSWORD and FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD. Our summary lists: A credential in APP_STORE_CONNECT_API_KEY_KEY.
SKILL.md names 2 domains. As links in the text: appstoreconnect.apple.com and appleid.apple.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Fastlane is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fastlane: App Store Preflight Skills (truongduy2611/app-store-preflight-skills, 1.4k stars), Odevio (Odevio/Odevio-CLI, 423 stars), Release (vaayne/mori, 303 stars) and Asc Xcode Build (rorkai/app-store-connect-cli-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.