Noções Básicas do EAS Build
Dez exemplos para eas.json, perfis de build e seu primeiro build iOS/Android na nuvem - a base operacional para distribuir binários do Expo SDK 57 sem Xcode ou Android Studio local em cada máquina.
Busque em todas as páginas da documentação
Dez exemplos para eas.json, perfis de build e seu primeiro build iOS/Android na nuvem - a base operacional para distribuir binários do Expo SDK 57 sem Xcode ou Android Studio local em cada máquina.
Comece com um aplicativo Expo em branco com SDK 57 fixado e EAS CLI instalado globalmente ou via npx:
npx create-expo-app@latest EasBuildBasics --template blank-typescript@sdk-57 --yes
cd EasBuildBasics
npm install -g eas-cli@latest
eas loginConfirme o pin da stack antes de configurar os builds:
{
"dependencies": {
"expo": "~57.0.4",
"react": "19.2.3",
"react-native": "0.86.0"
}
}Ferramentas: Estes exemplos visam o Expo SDK 57 (
expo~57.0.4), React Native 0.86.0 e React 19.2.3. Leia Noções Básicas de Prebuild antes do seu primeiro build EAS sob Geração Nativa Contínua (CNG).
EAS Build é o serviço de compilação na nuvem do Expo. Para um aplicativo CNG típico, ele:
app.config.ts, lockfile e modules/ (não ios/ / android/ ignorados pelo git)npx expo prebuild quando as pastas nativas estão ausenteseas build:configureeas build:configure cria eas.json e vincula o projeto à sua conta ExpoTodo build precisa de um ID de projeto Expo em app.config.ts:
eas init// app.config.ts
import type { ExpoConfig } from "expo/config";
const config: ExpoConfig = {
name: "EasBuildBasics",
slug: "eas-build-basics",
version: "1.0.0",
ios: {
bundleIdentifier: "com.example.easbuildbasics",
},
android: {
package: "com.example.easbuildbasics",
},
extra: {
eas: {
projectId: "00000000-0000-0000-0000-000000000000", // de eas init
},
},
};
export default config;npx expo config --type public | jq '.extra.eas.projectId'eas init escreve projectId - faça commit de app.config.ts após vincularprojectId falham cedo com um erro de configuração claroeas.json é o contrato de build - os perfis nomeiam conjuntos de credenciais, canais de distribuição e variáveis de ambiente:
{
"cli": {
"version": ">= 16.0.0",
"appVersionSource": "remote"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
}
}eas build --profile preview --platform ioscli.version fixa o EAS CLI mínimo - o CI deve corresponder ou exceder issoappVersionSource: "remote" permite que o EAS incremente automaticamente buildNumber / versionCode em perfis de lojaEngenheiros precisam de um binário nativo com expo-dev-client embutido - não o Expo Go:
npx expo install expo-dev-client{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"environment": "development",
"ios": {
"simulator": true
},
"android": {
"buildType": "apk"
}
}
}
}# Binário para Simulador iOS (sem registro de dispositivo)
eas build --profile development --platform ios
# APK Android para sideload via USB
eas build --profile development --platform androiddevelopmentClient: true compila o menu de desenvolvimento e módulos nativos personalizadosBuilds de preview se parecem com os de produção, mas são instalados via distribuição interna - TestFlight interno, ad hoc ou links de APK:
{
"build": {
"preview": {
"distribution": "internal",
"environment": "preview",
"channel": "preview",
"ios": {
"simulator": false
},
"android": {
"buildType": "apk"
}
}
}
}eas build --profile preview --platform alldistribution": "internal" pula a liberação pública na loja - veja Distribuição Internachannel vincula o binário aos pacotes EAS Update publicados com eas update --channel previewCompilações de produção geram binários de release assinados para App Store Connect e Google Play:
{
"build": {
"production": {
"distribution": "store",
"environment": "production",
"channel": "production",
"autoIncrement": true,
"android": {
"buildType": "app-bundle"
}
}
}
}eas build --profile production --platform all --non-interactivedistribution": "store" produz artefatos prontos para App Store / PlaybuildType": "app-bundle" é necessário para produção no Play - AAB, não APKautoIncrement": true incrementa buildNumber do iOS e versionCode do Android remotamenteA configuração interativa do primeiro build orienta a configuração de credenciais - aceite credenciais gerenciadas pelo EAS, a menos que você tenha uma cadeia de certificados existente:
eas build --profile production --platform iosFluxo de prompts (primeira vez):
? Gerar um novo Certificado de Distribuição Apple? › Sim
? Gerar um novo Perfil de Provisionamento Apple? › Sim
? Fazer login na sua conta de Desenvolvedor Apple › ...Após o sucesso:
eas build:list --platform ios --limit 3--non-interactiveO primeiro build Android gera ou carrega um keystore - deixe o EAS criar um para aplicativos greenfield:
eas build --profile production --platform android? Gerar um novo Keystore Android? › SimInspecione as credenciais armazenadas:
eas credentials --platform androidAcompanhe as compilações em andamento e recupere links de instalação:
# Assista ao último build
eas build --profile preview --platform ios --wait
# Liste builds recentes
eas build:list --status finished --limit 5
# Abra a página do build no navegador
eas build:view// Metadados de exemplo de build concluído (abreviado)
{
"status": "FINISHED",
"platform": "IOS",
"artifacts": {
"buildUrl": "https://expo.dev/artifacts/eas/....ipa"
}
}buildUrl com QA para sideload de APK/IPA ou instalações ad hoc--non-interactive e consulta eas build:list ou webhooks do EASAplicativos CNG padrão ignoram pastas nativas - o EAS as regenera em cada build:
# .gitignore
ios/
android/{
"build": {
"production": {
"env": {
"EXPO_NO_CAPABILITY_SYNC": "0"
}
}
}
}# Verificação local antes de gastar minutos do EAS
npx expo-doctor
npx expo prebuild --no-install
eas build --profile production --platform allInfo.plist editado manualmente - expresse alterações nativas em pluginsexpo run:ios local ou depuração Xcode no seu laptop."simulator": true) ainda usam workers macOS na nuvem.expo prebuild quando as pastas estão ausentes.package-lock.json - o tamanho do upload e o tempo de instalação diminuem.Versões da Stack: Esta página foi escrita para React 19.2.3, React Native 0.86.0 e Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026