サーチ…


署名コンフィグレーションで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を提供することもお勧めします。このファイルは常に正しい場所にあるレポの中に含まれています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow