plugins/smedjen/skills/expo-deployment/SKILL.md
EAS Build, OTA updates, app store submission, and Expo deployment workflows.
npx skillsauth add hjemmesidekongen/ai expo-deploymentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
EAS (Expo Application Services) handles the full Expo deployment lifecycle: native builds in the cloud, OTA JavaScript updates, and app store submission.
EAS Build runs cloud builds for iOS and Android without requiring local Xcode or Android Studio. Configuration lives in eas.json — one file, multiple profiles (development, preview, production). Each profile maps to a build type and distribution target.
Development builds replace Expo Go. They include your custom native code and connect to a local dev server. Preview builds go to internal testers (ad hoc / internal distribution). Production builds go to the stores.
OTA update (EAS Update): JavaScript and assets only. No native code changes, no new SDK version, no new native dependencies. Fastest path — no review required, deploys in minutes.
Native build required: any change to app.json native fields (bundleIdentifier, package, permissions, splash screen), new native dependencies, SDK upgrade, or changes to app.config.js that affect native output.
Rule: if expo prebuild would produce a different output, you need a native build.
EAS Submit handles store upload after a successful EAS Build. It reads credentials from EAS and submits the artifact. Apple requires an App Store Connect API key; Google requires a service account JSON.
Submission is decoupled from builds — submit any build by ID: eas submit --platform ios --id <build-id>.
expo publish (legacy) — use eas update for all OTA updates.runtimeVersion must match between the build and the update. Mismatches cause silent update ignoring..env files committed to git.production channel pointing only at production-ready branches.See references/process.md for eas.json profile details, EAS Update channels, versioning strategy, CI/CD integration, internal distribution, and anti-patterns.
development
Creates a brand from scratch through market research and interactive sparring. Runs competitive research via Perplexity, then guides the user through positioning, audience, voice, values, and content pillars. Produces the full brand guideline set at .ai/brand/{name}/. Use when building a new brand, defining brand strategy for a product, or when /våbenskjold:create is invoked.
testing
Loads brand guidelines from .ai/brand/{name}/ and makes them available to the current context. Progressive disclosure: L1 confirms brand exists, L2 loads summary, L3 loads specific files on demand. Use when a downstream skill or user needs brand context, or when /våbenskjold:apply is invoked.
documentation
Guided reinvention of an existing brand guideline. Loads current brand from .ai/brand/{name}/, identifies what to keep vs change, and walks the user through targeted evolution. Preserves brand equity while updating positioning, voice, or values. Use when refreshing a brand or when /våbenskjold:evolve is invoked.
development
Codifies an existing brand from materials, samples, and references. Analyzes provided content to extract voice patterns, values, and positioning. Produces the same guideline format as brand-strategy. Use when a brand already exists but isn't documented, or when /våbenskjold:audit is invoked.