Skip to content

modifyGradle

修改 Android Gradle 构建文件,支持修改应用ID、版本信息和签名配置。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.basenamePath['basename']获取文件名

环境要求

  • fs: Node.js 文件系统模块
  • path: 路径处理模块
typescript
import fs from 'fs'
import path from 'path'

函数签名

typescript
function modifyGradle(
  buildGradlePath: string,
  options: GradleModificationOptions,
  deps: ModifyGradleDeps
): Promise<ModificationResult>

interface GradleModificationOptions {
  applicationId?: string
  versionName?: string
  versionCode?: number
  signing?: {
    keystore: string
    keystorePassword: string
    keyAlias: string
    keyPassword: string
  }
}

interface ModifyGradleDeps {
  existsSync: FileSystem['existsSync']
  readFileSync: FileSystem['readFileSync']
  writeFileSync: FileSystem['writeFileSync']
  copyFileSync: FileSystem['copyFileSync']
  join: Path['join']
  dirname: Path['dirname']
  basename: Path['basename']
}

参数

参数名类型必填说明
buildGradlePathstringbuild.gradle 文件路径
options.applicationIdstring应用包名
options.versionNamestring版本名称(如 "1.0.0")
options.versionCodenumber版本代码(如 1)
options.signingobject签名配置对象
depsModifyGradleDeps依赖注入对象

返回值

类型说明
Promise<{ success: boolean; message?: string; error?: string }>Promise,解析为修改结果对象

异常

错误类型触发条件说明
文件不存在build.gradle 路径无效success: false, error 为 "文件不存在"
写入失败文件写入权限问题success: false, error 包含错误详情

工作原理

  1. 备份文件:复制原始 build.gradle 为 build.gradle.bak

  2. 读取文件:读取 build.gradle 文件内容

  3. 使用正则替换修改配置

    • applicationId: 匹配 applicationId "xxx" 并替换
    • versionName: 匹配 versionName "xxx" 并替换
    • versionCode: 匹配 versionCode xxx 并替换
    • signing: 在 buildTypes.release 块中添加或更新签名配置
  4. 写入文件:将修改后的内容写回 build.gradle

  5. 返回结果

    • 成功:success: true, message 描述修改内容
    • 失败:success: false, error 包含错误信息

使用正则表达式替换而非完全解析,保持文件原有格式和注释不变。