Что эквивалентно Eclipse "Custom debug Keystore" в студии Android?

Когда я работаю с 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")
        }
    }
}