尤卡,
假設沒有其他應用程序ID或包名稱從項目更改代碼,使用時簽到,預計與谷歌此錯誤你的debug.keystore和共享項目代碼。
出現此錯誤時簽名證書指紋(SHA-1)從console.developers.google.com項目爲Android的客戶ID不匹配的簽署應用程序開發者的指紋 。要重現您的錯誤,請在Google開發控制檯中修改Android客戶端ID SHA-1指紋值,然後嘗試從當前環境登錄。 我希望類似的錯誤:
com.amazon.mysampleapp E/SignInActivity:User Sign-in failed for Google
: Unknown (Service: google-sign-in; Status Code: 503; Error Code: 503;
Request ID: google-sign-in)
問題:每個開發環境都有一個用來簽署APK一個獨特的調試密鑰庫。 Google登錄僅限制您使用您在創建Android客戶端ID時提供的已知SHA-1簽名證書籤名的應用。另一個開發人員有不同的指紋,簽署apk並因爲他/她的指紋未與Android客戶端ID關聯而失敗。
解決方案:創建一個包含其他開發人員的指紋(你可以有一個谷歌控制檯項目內的多個谷歌的客戶ID),您的谷歌開發者控制檯項目相關的新的Android客戶端ID。 注意:在Mobile Hub項目中啓用Google登錄功能時,Mobile Hub實際上將代表您在IAM中創建一個OpenID Connect提供商(accounts.google.com)。 在提供商內部,Mobile Hub將您作爲「受衆」提供的Android客戶端ID添加到提供商。還在我這兒?
您提供的Android客戶端ID不在您生成的示例代碼中,僅用於識別試圖直接向Google發送API調用的已簽名應用。
因此,回顧一下解決方案:
創建一個新的Android客戶端ID(谷歌開發控制檯內)與下列移動中心控制檯內的側面板幫助文檔中介紹的步驟其他開發人員的指紋。
登錄AWS IAM控制檯,選擇「身份提供商」>「accounts.google.com」,然後將新生成的Android客戶端ID添加爲新的「受衆羣體」。如果您忘記/忽略此步驟,則會在嘗試登錄時從Cognito獲取狀態代碼400 NotAuthorizedException錯誤的代幣受衆羣體。
這不會是生產應用程序的問題。 當您準備在應用商店發佈您的應用時,請按照Google建議的步驟爲您的製作應用生成新的最終客戶端ID,然後將該客戶端ID作爲「受衆」提供給IAM。一旦您簽署併發布它,所有用戶都擁有相同的已簽名APK,並且可以通過Google登錄進行身份驗證。 https://support.google.com/cloud/answer/6158849?hl=en#android
感謝您的回答。 1。我們爲所有開發人員共享相同的gmail用戶ID,所以這不會成爲問題。 2.我們正在使用調試模式。 3.完成。 4.一個新問題:爲什麼AWS Mobile Hub需要「Google Web App客戶端ID」?我無法在Android代碼中看到它。 (我可以從代碼中找到「Google Android Client ID」) –
Amazon Cognito的服務需要Google Web App客戶端ID才能代表您與Google進行通信。 –
好的。在移動分析中我注意到了一件事。我們的應用程序可以看到兩次完全相同的應用程序名稱(其他的活動用戶更多)。但在Mobile Hub這個應用程序只是一次。什麼原因導致問題?如何刪除其他? –