You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fastlane自定义CI/CD部署咨询:基于Docker的Android构建实例参考

Android 场景下基于Fastlane的CI/CD落地配置实例

镜像适配调整

你找到的官方Fastlane Dockerfile默认包含多端构建依赖,仅用于Android场景时可做定向裁剪:

  • 移除iOS相关的ruby依赖包、Xcode命令行工具相关配置,减少镜像体积
  • 预安装指定版本的Android SDK、build-tools、platform SDK、NDK(原生开发场景需要)
  • 配置jks签名文件的挂载路径,敏感信息不内置到镜像中

核心Fastfile配置示例

以下是已经在生产环境落地的Android构建发布lane配置:

default_platform(:android)

platform :android do
  desc "构建Beta测试包并发布到内部测试平台"
  lane :beta do
    # 清理历史构建缓存
    gradle(task: "clean")

    # 基于Git提交记录自动迭代版本号(可选)
    increment_version_code(
      gradle_file_path: "./app/build.gradle"
    )
    increment_version_name(
      gradle_file_path: "./app/build.gradle"
    )

    # 注入签名配置构建Release包,签名信息从CI加密环境变量读取
    gradle(
      task: "assembleRelease",
      properties: {
        "android.injected.signing.store.file" => ENV["ANDROID_KEYSTORE_PATH"],
        "android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PWD"],
        "android.injected.signing.key.alias" => ENV["ANDROID_KEY_ALIAS"],
        "android.injected.signing.key.password" => ENV["ANDROID_KEY_PWD"]
      }
    )

    # 上传产物+发送通知,可根据实际使用的平台替换对应的action
    upload_to_play_store(track: "beta")
    slack(message: "Android Beta包已发布,版本号:#{lane_context[SharedValues::VERSION_NAME]}")
  end

  desc "构建生产环境正式包"
  lane :production do
    gradle(task: "clean")
    gradle(
      task: "bundleRelease",
      properties: {
        "android.injected.signing.store.file" => ENV["ANDROID_KEYSTORE_PATH"],
        "android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PWD"],
        "android.injected.signing.key.alias" => ENV["ANDROID_KEY_ALIAS"],
        "android.injected.signing.key.password" => ENV["ANDROID_KEY_PWD"]
      }
    )
    # 正式发布前增加人工审批卡点
    puts "请确认版本信息无误后继续执行发布"
  end
end

CI流程配置规范

  • 触发规则:PR提交时仅执行lint检查、单元测试验证;main分支合并、版本tag推送时自动触发Beta构建
  • 缓存配置:开启Gradle缓存、Ruby依赖缓存,可将单次构建耗时缩减60%以上
  • 权限控制:所有敏感信息(签名密码、平台token等)全部存储在CI系统的加密环境变量中,禁止明文写在配置文件里
  • 异常告警:配置构建失败自动发送告警到团队协作群,附带错误日志快照方便快速排查

落地注意事项

  • 提前在Docker镜像中固定所有依赖版本(Fastlane版本、Gradle版本、Android build-tools版本),避免依赖版本自动迭代导致构建不稳定
  • 构建产出的APK/AAB包同步备份到内部对象存储,至少保留3个月的构建历史方便问题回溯
  • 生产环境发布流程必须配置人工审核卡点,确认版本变更范围、测试报告后再执行最终发布操作

内容的提问来源于stack exchange,提问作者Chris G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:24:01