mirror of
https://github.com/DocNR/POWR.git
synced 2025-05-23 02:12:06 +00:00
97 lines
3.2 KiB
Markdown
97 lines
3.2 KiB
Markdown
![]() |
# iOS TestFlight Submission Guide
|
||
|
|
||
|
This guide documents the process for creating and submitting POWR to TestFlight for iOS testing.
|
||
|
|
||
|
## Project Configuration Issues
|
||
|
|
||
|
### Prebuild/Managed Workflow Conflict
|
||
|
|
||
|
The project currently has a "mixed" state that needs to be addressed:
|
||
|
- Native iOS and Android folders exist (bare workflow)
|
||
|
- Configuration exists in app.json that would normally be used in a managed workflow
|
||
|
|
||
|
When both native folders and app.json configs exist, EAS Build will use the native project settings and ignore certain app.json configurations including:
|
||
|
- orientation
|
||
|
- icon
|
||
|
- scheme
|
||
|
- userInterfaceStyle
|
||
|
- splash
|
||
|
- ios/android configuration
|
||
|
- plugins
|
||
|
- androidStatusBar
|
||
|
|
||
|
**TODO: After TestFlight validation, decide on one of these approaches:**
|
||
|
1. Commit to bare workflow: Keep native folders and move all configuration to them
|
||
|
2. Commit to managed workflow: Remove native folders and let Expo handle native code generation
|
||
|
|
||
|
## Fixed Issues
|
||
|
|
||
|
The following issues were addressed to prepare for TestFlight:
|
||
|
|
||
|
1. Updated outdated packages:
|
||
|
- expo: ~52.0.41 (was 52.0.35)
|
||
|
- expo-dev-client: ~5.0.15 (was 5.0.12)
|
||
|
- expo-file-system: ~18.0.12 (was 18.0.10)
|
||
|
- expo-router: ~4.0.19 (was 4.0.17)
|
||
|
- expo-sqlite: ~15.1.3 (was 15.1.2)
|
||
|
- jest-expo: ~52.0.6 (was 52.0.4)
|
||
|
|
||
|
2. Removed unmaintained and unnecessary packages:
|
||
|
- expo-random: Removed as it's flagged as unmaintained
|
||
|
- @types/react-native: Removed as types are included with react-native
|
||
|
|
||
|
3. Added proper iOS build configurations in eas.json:
|
||
|
- Added preview build profile for internal testing
|
||
|
- Added production build profile for App Store submission
|
||
|
|
||
|
4. Fixed updates URL in app.json to use the correct project ID
|
||
|
|
||
|
5. Fixed prebuild/managed workflow conflict:
|
||
|
- Added /android and /ios folders to .gitignore as recommended by expo-doctor
|
||
|
- This approach tells Git to ignore native folders while still allowing EAS Build to use them
|
||
|
- Addresses the warning about app.json configuration fields not being synced in non-CNG projects
|
||
|
|
||
|
## TestFlight Build Process
|
||
|
|
||
|
To create and submit a build to TestFlight:
|
||
|
|
||
|
1. Update Apple credentials in eas.json:
|
||
|
```json
|
||
|
"submit": {
|
||
|
"production": {
|
||
|
"ios": {
|
||
|
"appleId": "YOUR_APPLE_ID_EMAIL",
|
||
|
"ascAppId": "YOUR_APP_STORE_CONNECT_APP_ID",
|
||
|
"appleTeamId": "YOUR_APPLE_TEAM_ID"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
2. Create a build for internal testing (preview):
|
||
|
```
|
||
|
eas build --platform ios --profile preview
|
||
|
```
|
||
|
|
||
|
3. Create a production build for TestFlight:
|
||
|
```
|
||
|
eas build --platform ios --profile production
|
||
|
```
|
||
|
|
||
|
4. Submit the build to TestFlight:
|
||
|
```
|
||
|
eas submit --platform ios --latest
|
||
|
```
|
||
|
|
||
|
## Troubleshooting
|
||
|
|
||
|
- If you encounter issues with the mixed configuration state, consider fully committing to either the bare or managed workflow
|
||
|
- For build errors related to native code, check the iOS logs in the EAS build output
|
||
|
- For App Store Connect submission errors, verify your app metadata and screenshots in App Store Connect
|
||
|
|
||
|
## References
|
||
|
|
||
|
- [Expo Application Services Documentation](https://docs.expo.dev/eas/)
|
||
|
- [Expo Prebuild Documentation](https://docs.expo.dev/workflow/prebuild/)
|
||
|
- [TestFlight Documentation](https://developer.apple.com/testflight/)
|