Google Drive API在应用Release版本无法正常使用问题咨询
该错误本质是Google Drive API请求的存储空间范围和账号授权时授予的Scope不匹配,结合Debug正常、Release异常的特征,按以下步骤排查即可:
排查&解决步骤
- 排查R8/Proguard混淆配置
Debug模式默认关闭混淆,Release模式开启混淆后可能会误裁剪Google Drive SDK或OAuth相关的类/常量。请在项目混淆规则文件中添加以下配置:-keep class com.google.android.gms.drive.** { *; } -keep class com.google.api.services.drive.** { *; } -keepclassmembers class * { @com.google.api.client.util.Key <fields>; } - 校验构建变体的Scope申请逻辑
确认Release构建分支的Google登录逻辑中,确实和Debug一致申请了DriveScopes.DRIVE_APPDATA权限,不存在不同构建类型的分支逻辑差异,也没有遗漏权限申请代码。 - 核对Drive接口的
spaces请求参数
调用https://www.googleapis.com/drive/v3/files接口时如果仅申请了appDataFolder权限,必须保证请求参数spaces的值仅为appDataFolder,如果传了drive、photos等其他空间值,就会触发当前权限不足错误。 - 确认OAuth同意屏幕配置
检查Google Cloud控制台中对应Release包的OAuth客户端ID关联的同意屏幕,是否已正确添加../auth/drive.appdata权限;如果同意屏幕处于测试状态,需要将测试用到的Google账号添加到测试用户列表中,若要对外发布需将同意屏幕正式发布上线。 - 校验
google-services.json配置
确认Release构建时使用的google-services.json是更新了Release版SHA密钥后重新从Firebase控制台下载的,且已放置到项目的app/src/release/目录下,没有和Debug版配置混用。 - 检查Google Play应用签名的密钥一致性
如果你通过Google Play商店发布Release包,且开启了Google Play应用签名功能,Google会自动替换APK的签名证书,你需要将Google Play控制台「应用签名」页面展示的SHA-1、SHA-256密钥也添加到Google Cloud和Firebase控制台的OAuth客户端配置中。
内容的提问来源于stack exchange,提问作者Waqas Tahir
相关产品推荐
相关产品推荐

