Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/expo/expo/llms.txt

Use this file to discover all available pages before exploring further.

This guide covers everything you need to develop, build, and deploy Expo apps. Choose your setup based on what you’re building:
  • Quick start: Just Node.js and a phone → Use Expo Go
  • Full setup: Native builds → Install platform-specific tools

System Requirements

Required for All

  • Node.js 18 or newer
  • npm, yarn, or pnpm
  • Code editor (VS Code recommended)

For Native Builds

  • macOS (for iOS development)
  • Xcode 15+ (iOS)
  • Android Studio (Android)
  • CocoaPods (iOS)

Step 1: Install Node.js

Expo requires Node.js version 18 or newer.
Using Homebrew (recommended):
brew install node
Or download from nodejs.org:Visit nodejs.org and download the LTS version.Verify installation:
node --version  # Should show v18.0.0 or higher
npm --version
The Expo SDK requires Node.js 22.14.0 as specified in the monorepo, but Node 18+ is generally supported for app development.

Step 2: Install Expo CLI

Expo CLI is included with the expo package. You don’t need to install it globally!
npx create-expo-app my-app
cd my-app
The @expo/cli package is versioned with the Expo SDK, ensuring compatibility. Running npx expo uses your project’s local version automatically.Benefits:
  • No version conflicts between projects
  • Automatic updates with SDK upgrades
  • Faster CI/CD (no global install needed)

Verify CLI Installation

npx expo --version
You should see output like:
55.0.9

Step 3: Platform-Specific Setup

iOS development requires a Mac with macOS.

Install Xcode

  1. Install Xcode from the Mac App Store (15+ required)
  2. Open Xcode and accept the license agreement
  3. Install command line tools:
xcode-select --install

Install CocoaPods

CocoaPods manages iOS native dependencies:
sudo gem install cocoapods
Or using Homebrew:
brew install cocoapods

Verify iOS Setup

# Check Xcode
xcodebuild -version

# Check CocoaPods
pod --version

# List available simulators
xcrun simctl list devices

Set Up iOS Simulator

Open the iOS Simulator:
open -a Simulator
In Xcode, go to Xcode → Settings → Platforms to download additional iOS versions.

Step 4: Editor Setup

Install VS Code Extensions:
  1. Open VS Code
  2. Install these extensions:
    • ES7+ React/Redux/React-Native snippets
    • React Native Tools
    • Prettier - Code formatter
    • ESLint
Configure VS Code: Create .vscode/settings.json in your project:
.vscode/settings.json
{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

Step 5: Verify Installation

Create a test project to verify everything works:
1

Create test project

npx create-expo-app test-app
cd test-app
2

Start development server

npx expo start
3

Test on platforms

iOS Simulator (Mac only):
Press 'i' in the terminal
Android Emulator:
Press 'a' in the terminal
Web Browser:
Press 'w' in the terminal
Physical Device:
  • Scan QR code with Expo Go app
If your app opens successfully on any platform, your setup is complete!

Troubleshooting

Install Xcode command line tools:
xcode-select --install
If that doesn’t work, reset the path:
sudo xcode-select --reset
Add to your shell profile:
~/.zshrc
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
Reload:
source ~/.zshrc
Reset iOS Simulator:
  1. Open Simulator app
  2. Go to Device → Erase All Content and Settings
  3. Try again
Or from command line:
xcrun simctl erase all
Create a new emulator in Android Studio:
  1. Open Android Studio
  2. Tools → Device Manager
  3. Click Create Device
  4. Follow the wizard
Update CocoaPods and try again:
sudo gem install cocoapods
cd ios
pod repo update
pod install
Use a Node version manager:nvm (Mac/Linux):
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Install Node 18
nvm install 18
nvm use 18
nvm-windows:Download from github.com/coreybutler/nvm-windows

Package Manager Choice

Expo works with npm, yarn, or pnpm:
npx create-expo-app my-app
npm install
npm start
Once you choose a package manager, stick with it for the entire project. Don’t mix them!

Next Steps

Quick Start

Create your first app in 5 minutes

Core Concepts

Learn how Expo works

Tutorial

Build a complete app step-by-step

Development Builds

Set up for custom native code

Build docs developers (and LLMs) love