使用Fastlane执行supply init报错:找不到对应包名的Android应用
解决
fastlane supply init 报错 "No application was found for the given package name" 既然你已经成功用fastlane上传过APK到Google Play控制台,说明包名本身是正确的,也具备基本的上传权限,那这个报错大概率是配置或权限细节的问题,试试下面这些排查步骤:
1. 确认包名配置完全一致
- 检查Fastfile里
supply动作的package_name参数,确保和Google Play控制台里的应用包名完全匹配(包括大小写,虽然Android包名不区分,但Google API可能做严格校验)。 - 如果没在Fastfile里指定,看看是否有单独的
metadata/android目录或Supplyfile文件,里面的包名是否正确。
2. 验证服务账号的权限范围
虽然上传APK成功,但supply init需要读取应用元数据的权限,确保你的服务账号拥有:
- 在Google Play控制台「用户和权限」页面,找到对应服务账号,确认它具备查看应用信息和编辑应用信息的权限(至少需要「发布者」或更高权限,「仅查看者」权限不够)。
- 权限变更后,可能需要等待15-30分钟让Google权限系统同步,之后再重试命令。
3. 确认应用在Google Play控制台的状态
- 确保你的应用已经完成初始设置:比如填写了应用描述、截图等基础信息,且至少有一个版本处于「草稿」以外的状态(比如「内部测试」「封闭测试」或正式发布)。
- 如果应用仅上传了APK但完全处于未提交的草稿状态,
supply init可能无法识别到它。
4. 检查服务账号密钥文件的一致性
- 确认执行
fastlane supply init时,使用的是和上传APK时相同的服务账号密钥文件(通常是google-play-credentials.json)。如果换了密钥文件,对应账号可能没有该应用的访问权限。 - 可以在命令里明确指定密钥文件路径:
fastlane supply init --json_key ./path/to/google-play-credentials.json
5. 清除fastlane缓存后重试
缓存的旧数据可能导致异常,试试清除缓存再执行:
fastlane cache clear rm -rf ~/.fastlane/supply fastlane supply init
6. 手动指定应用ID初始化
如果以上步骤都无效,可以尝试用Google Play控制台里的应用数字ID(不是包名)来初始化:
fastlane supply init --package_name com.your.package --track internal --application_id 1234567890
应用ID可以在Google Play控制台的「设置 → 开发者账号 → API访问」页面找到,或者在应用详情页的URL中提取(比如https://play.google.com/console/u/0/apps/1234567890/dashboard里的数字就是应用ID)。
内容的提问来源于stack exchange,提问作者Manoj Cogzidel
相关产品推荐
相关产品推荐

