Александр Горбач


программирование, админство

Подготовка к релизу приложения на google play market

2 комментария

Небольшой гайд по настройке gradle проекта, и android studio для подготовке к сборке релиза для google play market.

Для публикации приложения на google play market нужно приложение подписать ключом шифрования. Что радует, сертификат ключа можно самостоятельно сгенерировать. Печалит тот факт, что если мы потеряем этот сертификат, то мы не сможем обновлять приложение, но радует что и никто другой, взломав аккаунт гугла не «обновит» наш софт. Вот такая радостная пичалька ).
Сертификат можно сгенерировать двумя способами, правильным и через графический интерфейс. На выходе в обоих случаях получается контейнер сертификата java ключа. В Android Studio идем в Build->Generate Signed APK и нажимаем кнопку «Create New..». Открывается окно заполнения данных для сертификата и хранилища сертификата

новое хранилище файлов

Окно создания нового хранилища файлов

Заполняем все параметры, задаем путь и нажимаем кнопку «Ok». Создается новый контейнер для сертифката ключа и собственно сам сертификат ключа.
В консоли эти же действия можно провернуть с помощью утилиты, идущей в комплекте с JDK, которая называет keytool. Выполняем команды:

>keytool -genkey -alias my_certificate -keystore c:\Projects\selfsigned.jks

Для моей установки результат работы выглядит следующим образом:

C:\Program Files\Java\jdk1.7.0_17\bin>keytool -genkey -alias my_certificate -keystore c:\Projects\selfsigned.jks
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  Alex Gorbach
What is the name of your organizational unit?
  [Unknown]:  development
What is the name of your organization?
  [Unknown]:  gorbach.me
What is the name of your City or Locality?
  [Unknown]:  Khv
What is the name of your State or Province?
  [Unknown]:  Khv
What is the two-letter country code for this unit?
  [Unknown]:  RU
Is CN=Alex Gorbach, OU=development, O=gorbach.me, L=Khv, ST=Khv, C=RU correct?
  [no]:  yes

Enter key password for <my_certificate>
        (RETURN if same as keystore password):
Re-enter new password:

Я рекомендую делать для каждого приложения свой контейнер сертификатов, и конечно же отдельный ключ. Мало ли с кем потом придется делиться доступом и не нужно давать доступ сразу ко всему пулу своих приложений, а выдать человеку только один файл.

Далее нам нужно настроить gradle для сборки релиза. Придется править только один файл <project>/<module>/build.gradle. Мой файл выглядит следующим образом:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 2
        versionName "1.0"
    }
   signingConfigs {
      release {
        storeFile file("C:\\Projects\\selfsigned.jks ")
        storePassword "supersecret"
        keyAlias "my_certificate"
        keyPassword "supersecretKey"
     }
   }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
	    signingConfig signingConfigs.release
        }
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}

Перед каждой публикацией настраиваем versionCode и versionName. versionCode Должен быть всегда больше предыдущего, за этим следит консоль разработчика. И добавляем к автоматически сгенерированному файлу секцию signingConfigs и в buildTypes->release добавляем шаг signingConfig.
После настроек можем выполнить команду в директории проекта:

>gradlew assembleRelease

после работы скрипта в директории <project>/<module>/build/apk/<module>-release.apk забираем наш файл, готовый к заливке на play market.

Автор Sash(k)a

Апрель 15th, 2014 at 8:16 пп

Яндекс.Метрика