POLICY: fastlane, never EAS
SkillCloud & infraMobile/web build pipeline: fastlane-first local builds, store submission, pre-submission checklists. Triggers: app, mobile, store submission, deploy app, fastlane, expo, react native, flutter.
Use POLICY: fastlane, never EAS in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add POLICY: fastlane, never EAS and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the POLICY: fastlane, never EAS skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by hashgraph-online/awesome-codex-plugins in plugins/ariaxhan/kernel-claude/skills/app-dev/SKILL.md and read by Ahel’s review.
Local fastlane builds (gym/gradle + deliver/supply) are the default for all native
build + store submission. EAS/cloud builders are a deliberate, stated exception —
never a silent reach (rule: CodingVault/.claude/CLAUDE.md "Mobile builds").
If the project ships its own build CLI (e.g. modelmind's ./mm), extend that — don't
bolt on a second pipeline.
FLOW
- Load source files — Read
fastlane/Fastfile, project build config (build.gradle,*.xcodeproj,app.config.*), any project build CLI, CI config. If no fastlane setup exists,fastlane initand commit the scaffold. (gate: build tooling identified) - Identify environment — dev / staging / production. API endpoints, signing creds,
feature flags are environment-specific. Signing material lives in keychain or
gitignored
_meta/keys/listed in the secrets-backup manifest — never in the tree. (gate: no hardcoded keys or shared signing certs) - Build locally — iOS:
fastlane gym(or project lane). Android:fastlanelane wrappinggradle bundleRelease→ signed AAB. (gate: build completes without error) - JS-only vs native change — JS-only updates may use the project's own OTA mechanism if one exists; any native change requires a full store build. (gate: OTA never used for native changes)
- Run pre-submission checklist (gate: all items pass before submitting):
- Privacy manifests (iOS): all required API reasons declared
- Permissions: only what you use, with clear usage descriptions
- Metadata: screenshots current, descriptions accurate (
fastlane/metadata/) - Version/build numbers: incremented correctly
- Physical device testing: tested on real device (not simulator)
- Deep links: universal links / app links verified
- Push notifications: working in production config
- Crash-free rate: > 99% on staging before promoting
- Bundle size: within limits, no large accidental assets
- Offline behavior: handles no-network gracefully
- iOS submission —
fastlane deliver/pilot: TestFlight (internal → external) → App Store review. Before external testing, provide TestFlight test information and submit the first build for TestFlight App Review; testing starts after approval. Later builds for the same version may also require review. (gate: metadata complete; privacy manifests present) - Android submission —
fastlane supplywith a Play service-account JSON: internal → closed/open beta → staged production rollout starting at 5-10%. (gate: data safety form complete; crash rate stable) - Monitor rollout — watch crash rates before expanding staged rollout. Rollback: halt rollout in console; OTA rollback via the project's own mechanism if present. (gate: crash-free rate holds > 99%)
ANTI-PATTERNS (block on detection)
- Reaching for EAS / cloud builders without a stated, justified exception
- Hardcoded API keys in builds → keychain or env injection at build time
- OTA update for native changes → must be a store build
- Skipping physical device testing → simulators miss real-world issues
- 0-to-100% rollout on Android → start at 5-10%
- Shared signing certs across environments → separate keystores
REFERENCE
Deep rationale, environment config patterns, iOS/Android submission detail:
skills/app-dev/reference/app-dev-research.md
ON COMPLETE
agentdb write-end '{"skill":"app-dev","platform":"ios|android|both","gate":"submitted|built|blocked","store_ready":true}'
Signals
- GitHub stars
- 1k
- Forks
- 316
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
app-dev- Source
- github.com/hashgraph-online/awesome-codex-plugins
github.com/hashgraph-online/awesome-codex-plugins
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptanimate-expo
Skill · emilkowalski
The pick for Expoexpo-dev-client
Skill · expo
The pick for Expoflutter-auto-route-navigation
Skill · hoangnguyen0403
The pick for Fluttererror-tracking-flutter
Skill · posthog
The pick for Flutter