2017-01-04 36 views
1

目標

我正在開發一個應用程序與谷歌飛度工作,但由於某種原因,我不能讓他們兩個版本在同一時間工作。谷歌飛度憑據:適用於生產,而不是發展

再重新創建憑據之前,它是周圍的其他方法:發展是工作,生產沒有。

證書&谷歌阿比

我啓用了API,並添加憑據:

Google Api website

密鑰庫

生成KetStore包含2個鍵,一個用於生產,另一個用於發展。每個人都根據其包名稱(請參閱Android App)在憑證頁面中設置。

Terminal dump of KeyStore

Android應用

我們的應用程序有2個不同的軟件包名稱:

  • xxx.yyy.app生產
  • xxx.yyy.development發展

這是使用Gradle配置實現的,使用了風味。這樣我們在手機上就有2個應用程序用於測試目的。

問題

我不知道它的發生衝突是什麼,它沒有讓我有他們兩個的工作。

我只有1個同時工作,而不工作的那個在LogCat上得到CANCELLED結果。

也許有相同的包裝前綴(xxx.yyy。)是一個問題,因此,讀取錯誤的憑據?

任何建議表示讚賞。 謝謝。

+0

我猜在使用相同的軟件包前綴時沒有問題,因爲軟件包名稱應該基於您控制的或有權使用的域名。請參閱[這裏](http://stackoverflow.com/questions/21038390/can-someone-else-use-the-same-package-name-prefix)。您遇到的錯誤「CANCELLED」意味着您正在使用錯誤的debug.keystore。這是一個相關的[線程](http://stackoverflow.com/questions/17238839/can-two-different-apps-have-the-same-packagename),這可能會有所幫助。 – abielita

回答

0

原來,Android Studio編譯APK時沒有使用我的keystore。它仍在使用默認debug.keystore以及別名AndroidDebugKeyandroid密碼。

出於某種原因,它沒有讀取我的development環境的簽名配置,但是它的值爲production

爲了檢查什麼簽署是各Build Variant使用:

  • 打開一個項目

  • 打開Gradle標籤右側

  • 展開< your_project> ==>任務==> Android

  • singingReport雙擊(這將創建一個GradleRun/Debug Configuration

  • 打開Gradle Console位於右下角

此時,你應該可以看到其中的一些:

Variant: developmentDebug 
Config: debug 
Store: /Users/<username>/.android/debug.keystore 
Alias: AndroidDebugKey 
MD5: YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY 
SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX 
Valid until: <date> 

確保每個變體的SHA1Credentials頁面中指定的相同。