capgo-native-builds
Skill75 starsChanged 32 days agoMITView on GitHub
Use for Capgo Cloud Build (Capgo Build) native iOS and Android workflows, including CLI login and API-key precedence, `build init` onboarding, signing credential save/update/export, `build request` with TestFlight, App Store, or Play upload, temporary IPA/APK/AAB download links (`--output-upload`), prescan failures, `build needed` OTA-vs-native gating, and CI secrets. Use when errors mention "No credentials found for this app and platform", "Legacy provisioning profile format detected", "Missing required argument: --platform", or prescan check ids. Do not use for OTA bundle uploads (capgo-release-management), updater plugin setup (capgo-live-updates), or local Xcode/Gradle builds and generic CI runners (capacitor-ci-cd).
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Aver005/agent-skillstheir own version, first seen Feb 14, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Aver005/agent-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- capacitor-accessibilitySkill
- capacitor-app-intentsSkill
- capacitor-apple-review-preflightSkill
- capacitor-app-storeSkill
- capacitor-app-upgradesSkill
- capacitor-app-upgrade-v4-to-v5Skill
- capacitor-app-upgrade-v5-to-v6Skill
- capacitor-app-upgrade-v6-to-v7Skill
- capacitor-app-upgrade-v7-to-v8Skill
- capacitor-app-upgrade-v8-to-v9Skill
- capacitor-best-practicesSkill
- capacitor-ci-cdSkill
- capacitor-deep-linkingSkill
- capacitor-ios-resizabilitySkill
- capacitor-ios-security-hardeningSkill
- capacitor-keyboardSkill
- capacitor-mcpSkill
- capacitor-offline-firstSkill
- capacitor-performanceSkill
- capacitor-plugin-spm-supportSkill
- capacitor-pluginsSkill
- capacitor-plugin-upgradesSkill
- capacitor-plugin-upgrade-v4-to-v5Skill
- capacitor-plugin-upgrade-v5-to-v6Skill
- capacitor-plugin-upgrade-v6-to-v7Skill
- capacitor-plugin-upgrade-v7-to-v8Skill
- capacitor-plugin-upgrade-v8-to-v9Skill
- capacitor-push-notificationsSkill
- capacitor-securitySkill
- capacitor-splash-screenSkill
- capacitor-testingSkill
- capacitor-uiscene-migrationSkill
- capawesome-live-update-migrationSkill
- capgo-cli-usageSkill
- capgo-cloudSkill
- capgo-live-updatesSkill
- capgo-organization-managementSkill
- capgo-release-managementSkill
- capgo-release-workflowsSkill
- cocoapods-to-spmSkill
- cordova-to-capacitorSkill
- debugging-capacitorSkill
- framework-to-capacitorSkill
- ionic-appflow-migrationSkill
- ionic-designSkill
- ionic-enterprise-sdk-migrationSkill
- ios-android-logsSkill
- konsta-uiSkill
- safe-area-handlingSkill
- skill-creatorSkill
- sqlite-to-fast-sqlSkill
- subscription-app-revenueSkill
- tailwind-capacitorSkill
- webapp-to-capacitorSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Do not use when:
- Very specific: line 23
Only JavaScript/web assets change.
- Distinctive: line 30
Only load a reference when its topic is in play.
- Distinctive: line 40
Do not put secrets in command arguments: they end up in shell history and process lists.
- Distinctive: line 41
If a secret appears in the conversation anyway, do not repeat it, do not write it to a file, and tell the user to revoke it and create a …
- Distinctive: line 43
Ask before any command that changes remote state: uploading a bundle, changing or promoting a channel, deleting apps, bundles, channels, or …
- Very specific: line 47
Use npx @capgo/cli@latest in user-facing commands.
- Very specific: line 68
Read capacitor.config.* for appId.
- Very specific: line 71
Check that the app exists: npx @capgo/cli@latest app list.
- Very specific: line 96
When the user already has signing files, use build credentials save instead.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Capgo Native Builds
Build signed iOS and Android binaries on Capgo Cloud Build and deliver them to the stores or to a temporary download link.
Facts below were checked against @capgo/cli 8.77 and https://capgo.app/docs/builder/ (October 2026). The CLI describes native cloud builds as "limited beta".
When to Use
TRIGGER when:
- The user asks for a Capgo Cloud Build, a native build in the cloud, a signed IPA/APK/AAB, a TestFlight, App Store, or Play upload through Capgo, or a temporary build download link or QR code.
- The user runs or asks about
build init,build request,build prescan,build needed,build last-output,build sync-ios-version, or anybuild credentials ...subcommand. - A Capgo build fails on signing, provisioning, keystore, prescan, or store upload.
Do not use when:
- Only JavaScript/web assets change. That is an OTA release: use
capgo-release-management, orcapgo-live-updatesfor plugin wiring. - The user builds locally in Xcode or Gradle, or on their own CI runners without Capgo Build. Use
capacitor-ci-cd. - The user needs store listing, metadata, or review prep. Use
capacitor-app-storeandcapacitor-apple-review-preflight. - The user is upgrading Capacitor itself. Use
capacitor-app-upgrades.
Reference Index
Only load a reference when its topic is in play.
| File | Load when |
references/request-options.md | Building the exact build request flags: store submission, tracks, release notes, versioning, cache, Xcode version, prescan flags |
references/credentials-and-ci.md | Saving, updating, exporting, or migrating credentials, and pushing them into CI secrets |
Secrets and Confirmation
- Never ask the user to paste a Capgo API key, signing password,
.p8key, keystore, or service-account JSON into the chat. Ask them to runnpx @capgo/cli@latest loginthemselves (it opens the browser or asks for the key in a masked prompt), or to setCAPGO_TOKENin their shell or CI secret store. - Do not put secrets in command arguments: they end up in shell history and process lists. Use environment variables, the saved login, or the CLI's interactive prompts.
- If a secret appears in the conversation anyway, do not repeat it, do not write it to a file, and tell the user to revoke it and create a new one.
npx @capgo/cli@latestdownloads and runs the newest CLI from npm. Run it only inside the user's project and with their go-ahead. In CI, pin an exact version.- Ask before any command that changes remote state: uploading a bundle, changing or promoting a channel, deleting apps, bundles, channels, or keys, requesting a build that uploads to a store, and exporting or deleting credentials. Say what will change and for which app and channel.
Operating Rules
- Use
npx @capgo/cli@latestin user-facing commands. - API keys, P12 passwords, keystore passwords,
.p8keys, and Play service-account JSON are secrets. Use placeholders in examples. Never ask for them in the chat and never echo them back. If one is pasted into the chat, tell the user to revoke it and create a new one. - Credentials are stored locally (
~/.capgo-credentials/credentials.json, or.capgo-credentials.jsonwith--local). They are uploaded only for the build job, and the temporary server copies are deleted when the build finishes. Never commit either file. - Confirm these before requesting: platform, app ID, project path, flavor or scheme, and destination (store upload, download link, or both).
Auth and API-key precedence
The CLI resolves the key in this order:
-a, --apikey <key>on the command- The
CAPGO_TOKENenvironment variable ~/.capgo, the global key saved bynpx @capgo/cli@latest login./.capgo, the project key saved bylogin --local
Trap: a global key wins over a project-local key. If a repository must use a different org's key, set CAPGO_TOKEN. Make sure .capgo is git-ignored.
Procedure
1. Inspect
ls ios androidand confirm the target native folder exists andnpx cap sync <platform>has run.- Read
capacitor.config.*forappId. It must match the iOS bundle ID and AndroidapplicationId(prescan checkshared/bundle-id-consistency). - iOS: check the Xcode scheme and target names (default
App) and any extensions that need their own provisioning profiles. - Android: check
android/app/build.gradleforproductFlavors. If there is more than one flavor,--android-flavoris required. - Check that the app exists:
npx @capgo/cli@latest app list. Add it withnpx @capgo/cli@latest app add com.example.app.
2. Decide whether a native build is needed at all
npx @capgo/cli@latest build needed com.example.app --channel production
# prints "yes" and exits 1 -> native build required
# prints "no" and exits 0 -> ship OTA instead
# exits 2 -> the command itself failedIt compares native package metadata only. Raw edits under ios/ or android/ still need a native build.
3. Set up credentials
First build, interactive (preferred):
npx @capgo/cli@latest build init # alias: build onboarding- iOS: verifies or creates the App Store Connect API key, then creates or reuses the certificate, bundle ID, and App Store provisioning profiles. It saves everything locally and can fire the first build. Progress persists under
~/.capgo-credentials/onboarding/, so the user can resume. - Android: sets up the keystore. Google OAuth then provisions a GCP service account and sends the Play Console invite.
- macOS helper for the
.p8key:npx @capgo/cli@latest build credentials apple-key --appId com.example.app.
When the user already has signing files, use build credentials save instead. See references/credentials-and-ci.md.
4. Pre-flight
npx @capgo/cli@latest build prescan com.example.app --platform iosPrescan runs automatically inside build request. Run it alone to fix problems before you upload anything. If one finding is intentional, skip only that check: --prescan-skip <check-id>. Avoid --no-prescan.
5. Request the build
# App Store / TestFlight (default ios distribution app_store)
npx @capgo/cli@latest build request com.example.app --platform ios --path .
# Android to Play internal track (default track internal, status draft)
npx @capgo/cli@latest build request com.example.app --platform android --path .
# Artifact only, no store upload
npx @capgo/cli@latest build request com.example.app --platform ios --ios-distribution ad_hoc --output-upload --output-retention 2d
npx @capgo/cli@latest build request com.example.app --platform android --no-playstore-upload --output-uploadThe --output-retention range is 1h to 7d. The default TTL saved in credentials is 1h.
Traps
- Xcode / Capacitor 9: the Capgo Build docs list macOS Tahoe 26.2 with Xcode 26.2. You can pin with
--xcode-version <major[.minor]>(orCAPGO_IOS_XCODE_VERSION). Capacitor 9 needs Xcode 27+. Capgo's docs and CLI 8.77 do not confirm an Xcode 27 builder. Before promising a Capacitor 9 iOS cloud build, check with--xcode-version 27or current docs. --no-playstore-uploadrequires--output-upload. Otherwise the build has no destination.- Ad hoc iOS skips the store. Use it with
--output-uploadwhen the App Store record does not exist yet. --submit-to-store-reviewchanges the Android defaults to theproductiontrack with statuscompleted. Confirm with the user before you add it.- Build numbers auto-increment by default. If the project owns build numbers, add
--skip-build-number-bump. Marketing versions can also auto-bump (--skip-marketing-version-bumpturns this off). - Build timeout defaults to 15 minutes. Raise it with
npx @capgo/cli@latest app set com.example.app --build-timeout-minutes 60(range 5 to 360). server.urlleft incapacitor.config(live reload) fails prescanios/capacitor-server-url-shippedfor store builds. Remove it rather than skipping the check.
Verification
npx @capgo/cli@latest build credentials list --appId com.example.appshows masked credentials for the target platform.npx @capgo/cli@latest build prescan com.example.app --platform <p> --fail-on-warningsexits 0.build requestends with a success status. With--output-uploadit prints a download link and QR code. With--output-record /tmp/build.json, checknpx @capgo/cli@latest build last-output --path /tmp/build.json --field outputUrl.- Store path: the build appears in TestFlight or the Play Console track you chose.
- Install the artifact on a device and check the version and build number.
Error Handling
| String / symptom | Fix |
No Capgo API key found. Run ... first, then retry this command. | The user runs npx @capgo/cli@latest login, or sets CAPGO_TOKEN |
Insufficient permissions for <key> / prescan shared/apikey-permission | The key's role cannot request native builds for this app or org. Use a key with build rights |
Missing required argument: --platform <ios|android> | Add --platform ios or --platform android |
❌ No credentials found for this app and platform | Run build init or build credentials save --appId <id> --platform <p> .... Check --local versus the global store |
Legacy provisioning profile format detected. Run: npx @capgo/cli build credentials migrate --platform ios | Run npx @capgo/cli@latest build credentials migrate --platform ios |
Missing argument, you need to provide a appId, or be in a capacitor project | Pass the app ID positionally or run from the app root |
output-retention must be a number with optional unit: s, m, h, d | Use 1h, 6h, 2d, and so on (max 7d) |
Prescan ios/cert-profile-pairing / ios/profile-type-vs-mode | The profile does not embed the certificate or does not match app_store/ad_hoc. Regenerate it with build credentials ios-provisioning |
Prescan ios/targets-covered | An extension has no profile. Add --ios-provisioning-profile <bundleId>=<path> |
| Android "Key alias not found" / wrong password | Check the alias and passwords. If they differ, pass both --keystore-key-password and --keystore-store-password |
| Multiple flavors error | Add --android-flavor <flavor> |
| Need diagnosis | Re-run with --verbose. --ai-analytics sends the failure logs to Capgo AI. --send-logs-to-support sends them to support |
More fixes: https://capgo.app/docs/builder/troubleshooting/
Supporting Docs
- Build reference: https://capgo.app/docs/cli/reference/build/
- Getting started: https://capgo.app/docs/builder/getting-started/
- iOS: https://capgo.app/docs/builder/ios/ · Android: https://capgo.app/docs/builder/android/
- Credentials: https://capgo.app/docs/builder/credentials/ · Prescan: https://capgo.app/docs/builder/prescan/
- OTA vs native in CI: https://capgo.app/docs/builder/ci-ota-or-native/
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

