> react-native-deployment
OTA updates with CodePush, EAS Build, and release configurations. Use when configuring OTA updates, EAS Build, or managing release configs for React Native. (triggers: app.json, eas.json, android/app/build.gradle, ios/**, deployment, codepush, eas, release, build, fastlane)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/react-native-deployment?format=md"React Native Deployment
Priority: P2 (MAINTENANCE)
Over-The-Air (OTA) Updates
CodePush (Microsoft)
-
JS-Only Updates: Update JS bundle without app store review.
-
Staging/Production: Use separate deployments.
-
Install:
npm install react-native-code-push -
Limitations: Cannot update native code (Obj-C, Java, Swift, Kotlin).
-
Expo Projects: Built-in OTA updates via channels (dev, staging, prod).
-
Install:
expo install expo-updates
Build Configurations
Expo (EAS Build)
{
"build": {
"development": { "developmentClient": true },
"preview": { "distribution": "internal" },
"production": { "autoIncrement": true }
}
}
eas build --platform ios --profile production
React Native CLI
- Android: Use
productFlavorsinbuild.gradle(dev, staging, prod). - iOS: Use Xcode schemes.
- Fastlane: Automate builds and uploads (
fastlane ios release).
Environment Management
- react-native-config:
.envfiles for API URLs, keys. - Separate Configs:
.env.dev,.env.staging,.env.production.
Anti-Patterns
- No OTA for Native Changes: Requires store release.
- No Secrets in Code: Use
.env& CI secrets. - No Manual Builds: Automate with CI/CD.
Reference & Examples
See references/codepush-setup.md.
Related Topics
common/git-collaboration | security
> related_skills --same-repo
> typescript-tooling
Development tools, linting, and build config for TypeScript. Use when configuring ESLint, Prettier, Jest, Vitest, tsconfig, or any TS build tooling. (triggers: tsconfig.json, .eslintrc.*, jest.config.*, package.json, eslint, prettier, jest, vitest, build, compile, lint)
> typescript-security
Secure coding practices for TypeScript. Use when validating input, handling auth tokens, sanitizing data, or managing secrets and sensitive configuration. (triggers: **/*.ts, **/*.tsx, validate, sanitize, xss, injection, auth, password, secret, token)
> typescript-language
Modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings. (triggers: **/*.ts, **/*.tsx, tsconfig.json, type, interface, generic, enum, union, intersection, readonly, const, namespace)
> typescript-best-practices
Idiomatic TypeScript patterns for clean, maintainable code. Use when writing or refactoring TypeScript classes, functions, modules, or async logic. (triggers: **/*.ts, **/*.tsx, class, function, module, import, export, async, promise)