Когда я работаю с API Карт Google, я привык работать с настраиваемым ключом отладки в Eclipse (это фактически мой производственный ключ)
Эта манипуляция позволила мне использовать тот же ключ API для Карт и большинства сервисов Google Play (в биллинге приложений) в моей сборке отладки и выпуска.
Это было действительно удобно, потому что не было необходимости менять ключ в манифесте.
![enter image description here]()
К сожалению, при переходе на Android Studio я пропускаю эту функцию.
Любая идея, где я могу найти эту опцию?
Большое спасибо.
Ответ 1
Вы определяете хранилище ключей в файле build.gradle. См. Раздел "Конфигурации подписи" здесь: https://developer.android.com/studio/build/index.html
В вашем случае вы хотите переопределить хранилище ключей для варианта отладки:
android {
signingConfigs {
debug {
storeFile file("your.keystore")
}
}
}
Однако вы действительно должны использовать два разных хранилища ключей для конфигурации отладки и выпуска.
Ответ 2
В недавнем Android Studio 0.8.9 вы найдете это в лучшем месте:
File->Project Structure
- Добавить хранилище ключей на вкладке "Подпись"
- Выберите его для отладки/выпуска "Типы сборки".
- Убедитесь, что имя псевдонима совпадает с вашим хранилищем ключей (keytool -list -v показывает ваше имя псевдонима)
Он создает материал gradle, автоматически синхронизируется на "Применить" и сразу срабатывает, как шарм.
Ответ 3
Привет. Если вы не хотите использовать жесткий код для всего этого, выполните следующие шаги:
->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 в файле build.gradle
signingConfigs {
debug {
storeFile file('custom_debug_keystore')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
}
Примечание:
1) Пожалуйста, не используйте .keystore в коде, который вы вручную используете для ручной настройки.
2) Укажите правильный псевдоним и пароль
Ответ 4
Вот полный шаг за шагом, который я взял, чтобы перенести оба моих ключа из файла 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 {}" в самом первом if
состоянии, где переменная props
получает поэтому просто переместите весь раздел android {...} в условие, в котором назначена переменная реквизита, затем повторите попытку.
Я собрал эти шаги вместе с найденной здесь информацией и здесь.
Ответ 5
Вы можете указать debug.keystore
для вашего проекта независимо.
Два шага со следующими изображениями: (Android Studio v0.5.2)
Шаг 1. Нажмите кнопку project structure
.
![Step 1]()
Шаг 2. Добавьте debug.keystore
следующим образом.
![enter image description here]()
Ответ 6
Кейстохранилище должно быть в файле 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
ссылка
Ответ 7
Как указано, вы можете использовать файл gradle, чтобы указать его.
Я также нашел очень удобным использовать домашнюю папку как часть пути. Это облегчает работу в команде. Вот мое предложение:
android {
signingConfigs {
debug {
storeFile file(System.properties['user.home']+"/.android/custom.debug.keystore")
}
}
}