74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# iOS Build Guide for Expo
|
|
|
|
This project uses the **Expo Managed Workflow**, which means the `ios` and `android` native directories are generated automatically via **Continuous Native Generation (CNG)**. You should not see or manually edit an `ios` folder in your project root.
|
|
|
|
---
|
|
|
|
## 1. Development (Expo Go)
|
|
|
|
The easiest way to build/run for iOS during development is using the **Expo Go** app on your iPhone.
|
|
|
|
1. Install **Expo Go** from the App Store.
|
|
2. Run the development server:
|
|
```bash
|
|
npx expo start
|
|
```
|
|
3. Scan the QR code with your Camera app to open the project in Expo Go.
|
|
|
|
---
|
|
|
|
## 2. Local Native Development (Prebuild)
|
|
|
|
If you need to test native modules, use a custom dev client, or specifically need the `ios` folder for debugging in Xcode:
|
|
|
|
1. Generate the native directories:
|
|
|
|
```bash
|
|
npx expo prebuild
|
|
```
|
|
|
|
_This will create the `ios` and `android` folders based on your `app.json` configuration._
|
|
|
|
2. Run on the iOS Simulator (requires macOS + Xcode):
|
|
```bash
|
|
npx expo run:ios
|
|
```
|
|
|
|
> [!WARNING]
|
|
> The `ios` folder is typically gitignored. In the managed workflow, any changes you make manually in the `ios` folder may be overwritten the next time you run `prebuild`. Always use `app.json` or config plugins for permanent configuration.
|
|
|
|
---
|
|
|
|
## 3. Production Builds (EAS Build)
|
|
|
|
To build a `.ipa` file for TestFlight or the App Store, the recommended way is using **Expo Application Services (EAS)**.
|
|
|
|
1. Install EAS CLI:
|
|
```bash
|
|
npm install -g eas-cli
|
|
```
|
|
2. Log in to your Expo account:
|
|
```bash
|
|
eas login
|
|
```
|
|
3. Configure the project (run once):
|
|
```bash
|
|
eas build:configure
|
|
```
|
|
4. Run a build for iOS:
|
|
```bash
|
|
eas build --platform ios
|
|
```
|
|
_EAS will handle certificates, provisioning profiles, and building on their servers (no macOS/Xcode required locally)._
|
|
|
|
---
|
|
|
|
## Summary of Commands
|
|
|
|
| Goal | Command |
|
|
| :----------------------- | :------------------------- |
|
|
| **Start Dev Server** | `npx expo start` |
|
|
| **Generate iOS Folder** | `npx expo prebuild` |
|
|
| **Run on iOS Simulator** | `npx expo run:ios` |
|
|
| **Build for Production** | `eas build --platform ios` |
|