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

React Native通过Fastlane部署至App Center始终使用旧版本问题

React Native Android 部署 App Center 始终出现旧版本问题

我使用Fastlane构建并部署React Native安卓应用至App Center,但每次部署的都是旧版本,开发中的修改从未生效。已确认gradle(task: "clean")会删除并重建build文件夹,本地搜索也找不到旧代码,但部署后仍显示旧内容。

我的beta lane代码如下:

lane :beta do
  ensure_git_status_clean
  bump
  store_password = ENV['KEYSTORE_PASSWORD']
  releaseFilePath = File.join(Dir.pwd, '..', 'my-release-key.keystore')


  gradle(task: 'clean')
  gradle(
    task: 'bundle',
    build_type: 'Release',
    properties: {
      'android.injected.signing.store.file' => releaseFilePath,
      'android.injected.signing.store.password' => store_password,
      'android.injected.signing.key.alias' => 'my-key-alias',
      'android.injected.signing.key.password' => store_password
    }
  )

  appcenter_upload(
    owner_type: 'organization',
    mandatory_update: true,
    api_token: ENV['TEST_APPCENTER_API_TOKEN'],
    owner_name: ENV['TEST_APPCENTER_OWNER_NAME'],
    app_name: ENV['APPCENTER_APP_NAME'],
    file: './app/build/outputs/bundle/release/app-release.aab',
    notify_testers: true,
    destinations: 'Mio',
    release_notes: changelog_from_git_commits
  )
end

排查方向与解决方法

  • 清理React Native Metro缓存:Metro的缓存可能导致打包时复用旧JS bundle,在gradle的bundle任务前添加手动打包命令,强制生成新的JS bundle:

    sh "npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/"
    

    或者直接执行npx react-native clean,彻底清理RN相关缓存后再执行构建。

  • 强制Gradle不使用构建缓存:Gradle的增量构建缓存可能遗漏部分文件,在bundle任务中添加--no-build-cache参数:

    gradle(
      task: 'bundle',
      build_type: 'Release',
      flags: '--no-build-cache',
      properties: {
        'android.injected.signing.store.file' => releaseFilePath,
        'android.injected.signing.store.password' => store_password,
        'android.injected.signing.key.alias' => 'my-key-alias',
        'android.injected.signing.key.password' => store_password
      }
    )
    
  • 验证生成的AAB内容:部署前用bundletool解压AAB文件,检查assets/index.android.bundle是否包含最新代码。如果AAB本身是旧的,问题出在打包环节;如果AAB是新的,需检查App Center的部署目标是否正确,或者测试设备是否有缓存未清理。

  • 确认Fastlane上传路径正确性:检查appcenter_upload中的file路径是否指向最新构建的AAB,避免上传了其他位置的旧产物。

  • 检查版本号递增情况:bump步骤会修改版本号,如果版本号未正确递增,可能导致测试者设备未触发更新提示,误以为是旧版本。

内容的提问来源于stack exchange,提问作者Gh05d

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:35:19