碰到的问题
应用修改包名上架后,发现原来集成的google第三方登录失败,通过Charles抓包获取到信息,在google验证获取token时失败,返回错误信息:UNREGISTERED_ON_API_CONSOLE
调查过程
问题原因
根据网上的信息可以大致了解到具体造成这个问题可能的原因,主要有三个可能性
- 相关Android应用没有在Google开发者平台上进行注册,主要是需要将应用包名,SHA-1等信息在开发者平台上进行登记,最终生成google-services.json文件,放在应用的app目录下。由于没有注册过相关信息,则Google登录获取token失败。
- 信息注册错误,如包名不对,或者应用的签名修改后造成SHA-1改变,没有及时更新信息。这些信息不匹配都会造成登录的失败。
尝试解决
根据造成这种bug的可能原因,做了一些尝试。
- 直接上Google开发者平台,注册新包名应用。具体步骤可以参考Google官方教程,获取到需要的信息:包名、SHA-1,上Google开发者平台注册应用信息,获取google-services.json文件。
- 配置文件获取完毕,直接出包测试,大功告成,可以成功登陆了!
3.后续尝试了另一种方法,发现修改包名后,不一定需要重新在google开发者平台上注册,只要将google-services.json文件中的相关包名修改一下即可,当然前提是签名没变。
总结
在修改Android应用包名后,如果应用内集成了google登录的功能,需要及时更新google-services.json文件。