android-gradle
署名設定を構成する
サーチ…
署名コンフィグレーションでbuild.gradleをコンフィグレーションする
署名設定を定義して、 build.gradle
ファイルのapkに署名することができます。
定義できる項目は次のとおりです。
-
storeFile
:キーストアファイル -
storePassword
:キーストアのパスワード -
keyAlias
:キーエイリアス名 -
keyPassword
:キーエイリアスのパスワード
署名設定を作成するには、 signingConfigs
ブロックを定義する必要があります。
android {
signingConfigs {
myConfig {
storeFile file("myFile.keystore")
storePassword "myPasswork"
keyAlias "aKeyAlias"
keyPassword "myAliasPassword"
}
}
//....
}
次に、1つ以上のビルドタイプに割り当てることができます。
android {
buildTypes {
release {
signingConfig signingConfigs.myConfig
}
}
}
外部ファイルに署名設定を定義する
署名設定は、プロジェクトのルートディレクトリのsigning.properties
として外部ファイルに定義できます。
たとえば、これらのキーを定義できます(お気に入りの名前を使用できます)。
STORE_FILE=myStoreFileLocation
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword
次に、build.gradleファイルに次のように記述します。
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
次に、ビルドプロセスでのグラデルの問題を避けるためにいくつかのチェックを導入することができます。
//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {
if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
android.buildTypes.release.signingConfig = null
}
} else {
android.buildTypes.release.signingConfig = null
}
署名の構成設定環境変数を定義する
署名情報設定環境変数を格納することができます。
これらの値は、 System.getenv("<VAR-NAME>")
でアクセスできます。
build.gradle
次のように定義できます。
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}
別のグラデルファイルに署名設定を定義する
外部設定を追加する最もシンプルでクリーンな方法は、別のGradleファイルを使用する方法です
build.gradle
apply from: './keystore.gradle'
android{
signingConfigs {
release {
storeFile file(keystore.storeFile)
storePassword keystore.storePassword
keyAlias keystore.keyAlias
keyPassword keystore.keyPassword
}
}
}
keystore.gradle
ext.keystore = [
storeFile : "/path/to/your/file",
storePassword: 'password of the store',
keyAlias : 'alias_of_the_key',
keyPassword : 'password_of_the_key'
]
keystore.gradleファイルは、ファイルシステム内のどこにでも存在することができます。グラデルファイルの先頭またはアプリケーションのbuild.gradleファイルの末尾に、 apply from: ''
中でその場所を指定することができます。
通常、gitなどのバージョン管理システムからこのファイルを無視することをお勧めします。
また、プロジェクトに入る開発者が名前を変更して開発マシンに移入するサンプルkeystore.gradle.sample
を提供することもお勧めします。このファイルは常に正しい場所にあるレポの中に含まれています。