Fastlane上传Google Play内部测试出现ADHOC_PACKAGE_NAME_MISMATCH错误如何解决
错误原因
- 核心问题是
upload_to_play_store_internal_app_sharing步骤上传的AAB文件不是你刚构建的Release包,而是残留的Debug包,所以AAB内置的包名是MY_DEBUG_PACKAGE_NAME,和Appfile中配置的MY_RELEASE_PACKAGE_NAME不匹配,触发Google Play接口校验报错。 - 具体诱因通常是你在Fastfile中写死的
MY_AAB_PATH路径指向了Debug包的生成位置,没有对应bundleRelease任务输出的Release AAB路径。
解决方案
1. 动态获取构建产物路径(优先推荐)
不要手动写死AAB路径,直接读取Gradle构建完成后Fastlane自动缓存的产物路径,保证上传的是刚生成的Release包,修改Fastfile的internal lane配置即可:
default_platform(:android) platform :android do desc "Runs all the tests" lane :test do gradle(task: "test") end desc "Deploy a new version to the Google Play Internal Test" lane :internal do gradle(task: "clean bundleRelease") # 自动获取上一步Gradle构建输出的Release AAB路径 release_aab_path = lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH] upload_to_play_store_internal_app_sharing aab: release_aab_path end end
2. 校验Gradle构建配置
检查app模块下的build.gradle文件,确认Release构建类型没有配置错误的applicationIdSuffix,保证Release变体最终生成的包名和Appfile中填写的MY_RELEASE_PACKAGE_NAME完全一致。
3. 清理残留构建产物
如果修改配置后仍报错,手动删除项目下的app/build目录,再执行fastlane internal重新构建上传即可。
内容的提问来源于stack exchange,提问作者liveAnyway
相关产品推荐
相关产品推荐

