首页
/ EAS CLI实战指南:从安装到部署的完整路径

EAS CLI实战指南:从安装到部署的完整路径

2026-03-16 04:37:19作者:明树来

理解EAS CLI的核心价值

作为开发者,我们经常需要一套高效的工具链来处理移动应用的构建、提交和更新流程。EAS CLI(Expo Application Services Command Line Interface)正是为解决这一需求而设计的专业工具。它提供了从项目初始化到应用发布的全流程支持,让我们能够专注于业务逻辑开发而非构建流程配置。

EAS CLI的核心优势在于:

  • 统一的多平台构建流程,支持iOS和Android应用
  • 自动化的凭证管理系统,简化证书配置
  • 灵活的工作流定制,适应不同开发场景
  • 与Expo生态深度集成,提供一致的开发体验

解析核心模块构成

系统架构概览

EAS CLI采用模块化架构设计,主要分为以下核心层次:

1. 运行核心层

  • packages/eas-cli/src/ - CLI核心功能实现
  • packages/eas-cli/src/commands/ - 命令系统实现,包含所有可执行命令
  • packages/eas-cli/src/api.ts - API通信层,处理与EAS服务的交互

2. 配置管理层

  • packages/eas-json/ - EAS配置文件解析与验证
  • packages/eas-cli/src/project/ - 项目配置管理
  • ts-declarations/ - TypeScript类型定义,确保类型安全

3. 工具支撑层

  • packages/logger/ - 日志系统,提供统一的日志输出
  • packages/template-file/ - 模板文件处理
  • packages/turtle-spawn/ - 与Turtle构建服务的通信
  • packages/downloader/ - 资源下载工具

4. 测试验证层

  • jest/ - Jest测试配置
  • 各模块下的__tests__/目录 - 单元测试和集成测试
  • scripts/ - 测试和构建脚本

核心功能模块详解

命令系统 位于packages/eas-cli/src/commands/目录,包含了所有EAS CLI支持的命令实现,如:

  • build/ - 应用构建相关命令
  • submit/ - 应用商店提交命令
  • update/ - 应用更新命令
  • credentials/ - 凭证管理命令

项目配置 packages/eas-json/模块提供了对eas.json配置文件的完整支持,包括:

  • 构建配置解析
  • 提交配置验证
  • 环境变量管理

凭证管理 packages/eas-cli/src/credentials/实现了完整的凭证管理系统,支持:

  • iOS证书和配置文件管理
  • Android密钥库管理
  • 凭证自动生成和更新

掌握配置优化技巧

开发环境配置

基础配置文件

package.json - 项目元数据中心,定义了项目依赖和脚本:

{
  "name": "eas-cli",
  "version": "3.10.0",
  "description": "Fastest way to build, submit, and update iOS and Android apps",
  "main": "build/index.js",
  "bin": {
    "eas": "./bin/eas"
  },
  "scripts": {
    "build": "tsc",
    "watch": "tsc --watch",
    "test": "jest"
  },
  "dependencies": {
    "@expo/config": "^8.0.0",
    "@expo/json-file": "^8.2.3",
    // 其他依赖...
  }
}

tsconfig.json - TypeScript配置:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "outDir": "build",
    "rootDir": "src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["**/__tests__/**"]
}

💡 优化建议:为开发环境创建单独的tsconfig.dev.json,启用更多严格检查选项,确保代码质量。

测试环境配置

jest.config.ts - Jest测试框架配置:

import type { Config } from '@jest/types';

const config: Config.InitialOptions = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  roots: ['<rootDir>/src'],
  testMatch: ['**/__tests__/**/*.test.ts'],
  moduleFileExtensions: ['ts', 'js', 'json'],
  collectCoverage: true,
  coverageDirectory: 'coverage',
  coverageReporters: ['text', 'lcov'],
};

export default config;

⚠️ 注意事项:测试环境需要设置正确的NODE_ENV=test环境变量,避免影响生产环境配置。

生产环境配置

eas.json - EAS构建配置文件:

{
  "cli": {
    "version": ">= 3.10.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal",
      "ios": {
        "simulator": true
      },
      "android": {
        "buildType": "apk"
      }
    },
    "production": {
      "autoIncrement": true
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "your-apple-id@example.com",
        "ascAppId": "1234567890",
        "appleTeamId": "AB12XYZ"
      },
      "android": {
        "serviceAccountKeyPath": "./google-service-account.json",
        "track": "production"
      }
    }
  }
}

💡 优化建议:为不同环境创建独立的配置文件,如eas.staging.json,使用--profile参数指定构建配置。

实践操作指南

环境准备

  1. 安装Node.js和Yarn

    # 推荐使用nvm安装Node.js
    nvm install 16
    nvm use 16
    
    # 安装Yarn包管理器
    npm install -g yarn
    
  2. 克隆项目仓库

    git clone https://gitcode.com/gh_mirrors/ea/eas-cli
    cd eas-cli
    
  3. 安装项目依赖

    yarn install
    

⚠️ 注意事项:确保Node.js版本不低于14.0.0,Yarn版本不低于1.22.0,否则可能导致依赖安装失败。

项目初始化

  1. 构建项目

    yarn build
    
  2. 链接CLI工具(开发模式)

    yarn link
    
  3. 验证安装

    eas --version
    

💡 优化建议:使用yarn watch命令启动持续构建,在开发过程中自动更新构建结果。

基本使用流程

创建新构建

# 创建开发环境构建
eas build --profile development

# 创建生产环境构建
eas build --profile production

提交到应用商店

# 提交iOS应用到App Store
eas submit --platform ios --profile production

# 提交Android应用到Google Play
eas submit --platform android --profile production

管理更新

# 发布应用更新
eas update --channel production

# 查看更新历史
eas update:list

高级配置技巧

自定义构建步骤 创建eas-build-pre-install.sh脚本来自定义构建前步骤:

#!/bin/bash
# 安装额外依赖
yarn add -D some-dev-dependency

# 执行自定义构建逻辑
node scripts/custom-build-step.js

环境变量管理 创建.env文件存储环境变量:

API_URL=https://api.example.com
API_KEY=your-secret-key

eas.json中引用环境变量:

{
  "build": {
    "production": {
      "env": {
        "API_URL": "$API_URL",
        "API_KEY": "$API_KEY"
      }
    }
  }
}

⚠️ 注意事项:敏感信息不应提交到版本控制系统,使用eas secret:set命令管理敏感环境变量。

常见问题解决

构建失败排查

  1. 检查Node.js和依赖版本是否符合要求
  2. 清除缓存后重试:eas build --clear-cache
  3. 检查日志文件:eas logs <build-id>

凭证问题

  1. 重置iOS凭证:eas credentials reset --platform ios
  2. 手动管理Android密钥:eas credentials manager --platform android

性能优化

  1. 启用构建缓存:eas build --profile production --clear-cache
  2. 优化依赖:yarn dedupe
  3. 使用增量构建:eas build --incremental

通过本指南,我们已经掌握了EAS CLI的核心架构、配置方法和实用技巧。无论是日常开发还是生产部署,这些知识都将帮助我们更高效地使用EAS CLI工具链,提升移动应用开发 workflow 的质量和效率。随着项目的不断演进,建议定期查看官方文档和变更日志,及时了解新功能和最佳实践。

登录后查看全文
热门项目推荐
相关项目推荐