[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-4266d363-79d2-455d-9d80-99cfe1535489":3,"$f144T1EDwO1FJBIkyYPSkHp7_UHDXnmnFzcNdvffLcLQ":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"4266d363-79d2-455d-9d80-99cfe1535489","expo-dev-client","本地或通过TestFlight构建和分发Expo开发客户端","cat_coding_review","mod_coding","sickn33,coding","---\nname: expo-dev-client\ndescription: Build and distribute Expo development clients locally or via TestFlight\nrisk: unknown\nsource: community\nversion: 1.0.0\nlicense: MIT\n---\n\nUse EAS Build to create development clients for testing native code changes on physical devices. Use this for creating custom Expo Go clients for testing branches of your app.\n\n## When to Use\n- You need an Expo development client because the app depends on custom native code or targets not supported by Expo Go.\n- The task involves building, distributing, or testing EAS development builds on physical devices.\n- You need guidance on when to choose a dev client versus staying on plain Expo Go.\n\n## Important: When Development Clients Are Needed\n\n**Only create development clients when your app requires custom native code.** Most apps work fine in Expo Go.\n\nYou need a dev client ONLY when using:\n- Local Expo modules (custom native code)\n- Apple targets (widgets, app clips, extensions)\n- Third-party native modules not in Expo Go\n\n**Try Expo Go first** with `npx expo start`. If everything works, you don't need a dev client.\n\n## EAS Configuration\n\nEnsure `eas.json` has a development profile:\n\n```json\n{\n  \"cli\": {\n    \"version\": \">= 16.0.1\",\n    \"appVersionSource\": \"remote\"\n  },\n  \"build\": {\n    \"production\": {\n      \"autoIncrement\": true\n    },\n    \"development\": {\n      \"autoIncrement\": true,\n      \"developmentClient\": true\n    }\n  },\n  \"submit\": {\n    \"production\": {},\n    \"development\": {}\n  }\n}\n```\n\nKey settings:\n- `developmentClient: true` - Bundles expo-dev-client for development builds\n- `autoIncrement: true` - Automatically increments build numbers\n- `appVersionSource: \"remote\"` - Uses EAS as the source of truth for version numbers\n\n## Building for TestFlight\n\nBuild iOS dev client and submit to TestFlight in one command:\n\n```bash\neas build -p ios --profile development --submit\n```\n\nThis will:\n1. Build the development client in the cloud\n2. Automatically submit to App Store Connect\n3. Send you an email when the build is ready in TestFlight\n\nAfter receiving the TestFlight email:\n1. Download the build from TestFlight on your device\n2. Launch the app to see the expo-dev-client UI\n3. Connect to your local Metro bundler or scan a QR code\n\n## Building Locally\n\nBuild a development client on your machine:\n\n```bash\n# iOS (requires Xcode)\neas build -p ios --profile development --local\n\n# Android\neas build -p android --profile development --local\n```\n\nLocal builds output:\n- iOS: `.ipa` file\n- Android: `.apk` or `.aab` file\n\n## Installing Local Builds\n\nInstall iOS build on simulator:\n\n```bash\n# Find the .app in the .tar.gz output\ntar -xzf build-*.tar.gz\nxcrun simctl install booted .\u002Fpath\u002Fto\u002FApp.app\n```\n\nInstall iOS build on device (requires signing):\n\n```bash\n# Use Xcode Devices window or ideviceinstaller\nideviceinstaller -i build.ipa\n```\n\nInstall Android build:\n\n```bash\nadb install build.apk\n```\n\n## Building for Specific Platform\n\n```bash\n# iOS only\neas build -p ios --profile development\n\n# Android only\neas build -p android --profile development\n\n# Both platforms\neas build --profile development\n```\n\n## Checking Build Status\n\n```bash\n# List recent builds\neas build:list\n\n# View build details\neas build:view\n```\n\n## Using the Dev Client\n\nOnce installed, the dev client provides:\n- **Development server connection** - Enter your Metro bundler URL or scan QR\n- **Build information** - View native build details\n- **Launcher UI** - Switch between development servers\n\nConnect to local development:\n\n```bash\n# Start Metro bundler\nnpx expo start --dev-client\n\n# Scan QR code with dev client or enter URL manually\n```\n\n## Troubleshooting\n\n**Build fails with signing errors:**\n```bash\neas credentials\n```\n\n**Clear build cache:**\n```bash\neas build -p ios --profile development --clear-cache\n```\n\n**Check EAS CLI version:**\n```bash\neas --version\neas update\n```\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,247,133,"2026-05-16 13:17:26",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"代码审查","review","mdi-magnify-scan","代码质量分析、安全审查",4,145,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"62ab257c-a465-461d-ade6-ab40e01f290d","1.0.0","expo-dev-client.zip",1824,"uploads\u002Fskills\u002F4266d363-79d2-455d-9d80-99cfe1535489\u002Fexpo-dev-client.zip","7d96cec87460537150994a68d6cba1c276776ab29d4fe019e67277d4d8cb7bf7","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":4186}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]