碰到的問題
應用修改包名上架后,發現原來集成的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文件。