使用AndroidPublisher API上传App Bundle时遇404错误:找不到符号文件对应APK
我来帮你梳理这个问题——你遇到的这个404错误在API上传App Bundle的场景里挺常见的,既然控制台手动上传完全正常,说明你的AAB本身没问题,问题大概率出在API调用的流程或参数细节上,下面是几个最可能的原因和对应的解决办法:
符号文件上传顺序搞反了
控制台会自动帮你处理App Bundle和符号文件的关联顺序,但API是分步调用的:如果你先上传了ProGuard/R8的符号文件(比如mapping.txt),再传AAB,就会出现这个"找不到对应APK"的错误——因为符号文件需要绑定已经存在的Bundle。
解决办法:调整调用顺序,先通过edits/bundles/upload完成AAB上传,确认接口返回成功后,再上传符号文件到同一个Edit会话下。Edit会话不统一
每个Edit都是独立的会话空间,如果你上传AAB用了一个Edit ID,上传符号文件又创建了新的Edit,系统自然找不到关联的Bundle。
解决办法:确保上传Bundle和符号文件使用同一个Edit ID,不要中途创建新的Edit会话。Bundle上传未完成就触发符号文件上传
虽然你看到有网络流量,但API后台可能还在处理和存储你的AAB,这时候立刻上传符号文件,系统还没完成Bundle的注册,就会返回404。而控制台上传是同步完成整个流程的,不会有这个问题。
解决办法:上传AAB后,调用edits/bundles/get接口确认Bundle已经存在(返回200且包含正确的versionCode信息),再进行符号文件上传。可以加个简单的重试逻辑,等待Bundle处理完成。符号文件的版本参数不匹配
上传符号文件时,如果指定的versionCode和你刚传的AAB的versionCode不一致,或者track参数错误,也会导致系统找不到对应的Bundle。
解决办法:仔细检查符号文件上传接口的参数,确保versionCode和AAB的版本号完全一致,并且使用正确的Edit ID和track信息。权限范围遗漏(概率较低)
虽然你能上传Bundle,但如果OAuth2令牌的权限范围没包含完整的https://www.googleapis.com/auth/androidpublisher,可能会影响符号文件的关联操作。不过因为控制台能正常上传,这个可能性比较小,但可以排查一下。
解决办法:确认你的API认证令牌的scope包含完整的Android Publisher权限。
内容的提问来源于stack exchange,提问作者SUPERCILEX

