由於我在使用Google Maps API,因此我一直習慣在Eclipse中使用自定義調試密鑰(實際上是我的生產密鑰)在Android Studio中,Eclipse的「自定義調試密鑰庫」等價於什麼?
此操作允許我對地圖使用相同的API密鑰,我的調試和發佈版本中大部分Google Play服務(在應用程序結算中)。
這非常方便,因爲不需要更改清單中的密鑰。
不幸的是,遷移到Android Studio中,我缺少這個功能。
任何想法,我可以找到這個選項嗎?
非常感謝。
由於我在使用Google Maps API,因此我一直習慣在Eclipse中使用自定義調試密鑰(實際上是我的生產密鑰)在Android Studio中,Eclipse的「自定義調試密鑰庫」等價於什麼?
此操作允許我對地圖使用相同的API密鑰,我的調試和發佈版本中大部分Google Play服務(在應用程序結算中)。
這非常方便,因爲不需要更改清單中的密鑰。
不幸的是,遷移到Android Studio中,我缺少這個功能。
任何想法,我可以找到這個選項嗎?
非常感謝。
您在build.gradle文件中定義了一個keystore。見簽名配置部分在這裏:https://developer.android.com/studio/build/index.html
在你的情況,你要重新定義密鑰庫的調試版本:
android {
signingConfigs {
debug {
storeFile file("your.keystore")
}
}
}
但是,你真的應該使用調試兩個不同的密鑰存儲和釋放配置。
可以指定debug.keystore
爲項目獨立。
兩個步驟具有以下的圖像:(Android Studio中v0.5.2)
步驟1:點擊的project structure
的按鈕。
步驟2:添加debug.keystore
如下。
希望在Android Studio v0.8這個屏幕不可用。唯一的辦法可能是build.gradle,糾正我,如果我錯了。 – arvindwill
在近期的Android 0.8.9工作室,你會發現這個在這樣更好的地方:
File->Project Structure
它創建gradle這個東西,syncrhonizes並立即工作就像一個魅力。
請注意,您不需要指定所有的字段。對於調試密鑰,可以省略默認值(別名'androidebugkey'和密鑰庫/密鑰密碼設置爲'android')。對於釋放密鑰,您可能不想在那裏輸入密碼,因爲它將在build.gradle中明確存儲,然後在DVCS上結束。 – ralfoide
你好如果你不想去硬編碼所有的這些東西,然後去以下簡單步驟
->Your project
->Your Module
->Right click on your module
->go to open module settings
->Go to Signing section
->Specify all the attribute here and browse your Custom debug key in Store File
這時你會發現下面的代碼,這將是通過在Android Studio中自動創建建立。gradle這個
signingConfigs {
debug {
storeFile file('custom_debug_keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
}
注:
1)請不要使用該代碼的.keystore手動你去手動配置
2)請指定正確的別名和密碼
這裏是一個完成了我將兩個密鑰從gradle.build文件移出到一個文件中的循序漸進的步驟,該文件將不會包含在任何構建或存儲庫提交中。
1)創建一個gradle.properties(如果你還沒有的話)。
此文件的位置取決於您的操作系統:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
2)添加一個條目指向yourprojectname.properties
文件。 (例如對於Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3)創建yourprojectname.properties
文件中的位置,你在步驟2中使用以下信息指定:
keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password
4)修改gradle.build
文件指向以yourprojectname.properties
文件使用變量。
if(project.hasProperty("yourprojectname.properties")
&& new File(project.property("yourprojectname.properties")).exists()) {
Properties props = new Properties()
props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))
android {
signingConfigs {
release {
keyAlias 'release'
keyPassword props['keystore.password']
storeFile file(props['keystore'])
storePassword props['keystore.password']
}
debug {
keyAlias 'debug'
keyPassword props['keystore.password']
storeFile file(props['keystore'])
storePassword props['keystore.password']
}
}
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "your.project.app"
minSdkVersion 16
targetSdkVersion 17
}
buildTypes {
release {
}
}
}
}
dependencies {
...
}
5)享受!現在,您的所有密鑰都將位於目錄根目錄之外,但每個構建仍然具有自動化的樂趣。
如果你在你的gradle.build文件中有關「道具」變量的錯誤,那是因爲你沒有執行的「Android {}」塊,其中props
變量被分配到第一個if
條件裏面所以才動整個android {...}部分放入props變量分配的條件中,然後重試。
這應該是完整的正確答案 – Plugie
密鑰庫需要在的build.gradle,例如如下:
android{
signingConfigs {
release {
storeFile file('/path/platform.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
...
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Eclipse中並沒有真正詢問密碼或別名,但確實的gradle。我相信Eclipse只是假設它是密碼:android和別名:androiddebugkey。這可能不適用於您的密鑰庫,但我會在Gradle上嘗試這種方式。
如果你知道密碼,但你不知道的別名你也可以運行下面的命令來獲得別名: keytool -list -keystore /path/platform.keystore
link
正如指出的那樣,你可以使用gradle這個文件指定它。 我還發現使用Home文件夾作爲路徑的一部分非常方便。這使得在團隊中工作時更容易。這裏是我的建議:
android {
signingConfigs {
debug {
storeFile file(System.properties['user.home']+"/.android/custom.debug.keystore")
}
}
}
非常感謝,我會盡力而爲。爲什麼我應該使用不同的密鑰?結果和我獲得的時間是巨大的...... –
對調試密鑰庫的密碼是否有任何約束? –
如果我想要調試每個特定的密鑰庫,該怎麼辦? –