React Native Build

Build commands for react native projects

ovieiffieu2much

ovieiffieu2much

View Profile
31 views
Jan 18, 2026

Build profiles explained
productionApk: build app apk file on eas, can be downloaded and shared directly, or eas credentials can be shared with a third party to download and install
developmentApk: Apk build but for development, this supports libraries that uses native code
developmentIos: Similar to the development Apk, but you need an ios paid account to do this, and your ios device needs to be on “developer mode” in order to install these apps, also your device UID needs to have been added to list of authorised devices to install the app. Plugging your iphone to your mac should show you the UID of the iphone in your finder, also run

eas device:create

to add your device
productionIos: simiar to developmentIos but this is a production build and cant be used for development, using this process bypasses testflight

production: this profile builds app for testflight or playstore directly for both ios and android respectively

#build.sh

# update eas

npm install -g eas-cli

# login to eas

eas login

# configure build

eas build:configure

# build production apk

eas build -p android --profile productionApk

# build development apk

eas build -p android --profile developmentApk

# build development ios

eas build -p ios --profile developmentIos

# build production ios

eas build -p ios --profile productionIos

# add test devices for ios

eas device:create

# check build first locally

npx expo-doctor@latest --verbose

# check dependencies compatability

npx expo install --check

# register device for distribution build

eas device:create

# upgrade to latest version of expo

npx expo install expo@latest

npx expo prebuild

eas build --platform android

eas build --platform ios

eas build --platform android --auto-submit

eas build --platform ios --auto-submit

//eas.json

{

"cli": {

"version": ">= 0.17.8",

"appVersionSource": "remote"

},

"build": {

"productionApk": {

"android": {

"buildType": "apk"

},

"env": {

"EXPO_PUBLIC_SUPABASE_PROJECT_URL": "",

"EXPO_PUBLIC_SUPABASE_ANON_KEY": ""

},

"autoIncrement": true

},

"developmentApk": {

"developmentClient": true,

"android": {

"buildType": "apk"

},

"env": {

"EXPO_PUBLIC_SUPABASE_PROJECT_URL": "",

"EXPO_PUBLIC_SUPABASE_ANON_KEY": ""

},

"environment": "development",

"autoIncrement": true

},

"developmentIos": {

"developmentClient": true,

"distribution": "internal",

"ios": {

"resourceClass": "m-medium"

},

"env": {

"EXPO_PUBLIC_SUPABASE_PROJECT_URL": "",

"EXPO_PUBLIC_SUPABASE_ANON_KEY": ""

},

"environment": "development",

"autoIncrement": true

},

"productionIos": {

"distribution": "internal",

"ios": {

"resourceClass": "m-medium"

},

"env": {

"EXPO_PUBLIC_SUPABASE_PROJECT_URL": "",

"EXPO_PUBLIC_SUPABASE_ANON_KEY": ""

},

"autoIncrement": true

},

"production": {

"ios": {

"resourceClass": "m-medium"

},

"env": {

"EXPO_PUBLIC_SUPABASE_PROJECT_URL": "",

"EXPO_PUBLIC_SUPABASE_ANON_KEY": ""

},

"autoIncrement": true

}

},

"submit": {

"production": {

"android": {

"serviceAccountKeyPath": "./servide-account file.json", #needed for auto submit app to playstore

"track": "internal"

}

}

}

}

</>