デバッグビルドタイプの署名設定をフレーバー署名設定で上書きする 質問する

デバッグビルドタイプの署名設定をフレーバー署名設定で上書きする 質問する

internal2 つのフレーバー (と )を持つ Android アプリがあり、productionビルド タイプも と の 2 つありdebugますrelease

フレーバーに基づいて署名構成を割り当てようとしていますが、ドキュメントによると、これは実行可能です。これに対する他の回答を探して見つけましたが、どれも機能していないようです。すべてコンパイルされますが、アプリはマシンのローカルにあるデバッグ キーストアで署名されています。

これが私のGradleファイルです:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0.0"
    }

    signingConfigs {
        internal {
            storeFile file("../internal.keystore")
            storePassword "password"
            keyAlias "user"
            keyPassword "password"
        }
        production {
            storeFile file("../production.keystore")
            storePassword "password"
            keyAlias "user"
            keyPassword "password"
        }
    }

    productFlavors {
        internal {
            signingConfig signingConfigs.internal
            applicationId 'com.test.test.internal'
        }
        production {
            signingConfig signingConfigs.production
            applicationId 'com.test.test'
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".d"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    variantFilter { variant ->
        if (variant.buildType.name.equals('debug')
                && variant.getFlavors().get(0).name.equals('production')) {
            variant.setIgnore(true);
        }
    }
}

注: 私はまた、classpath 'com.android.tools.build:gradle:1.1.3'

ベストアンサー1

デフォルトでは、Android にはsigningConfigデバッグ ビルド タイプ (Android デバッグ キーストア) が設定されており、signingConfigビルド タイプに が設定されている場合、signingConfigフレーバーでは が無視されるようです。

解決策は、デバッグ ビルド タイプで を に設定することです。すると、signingConfigフレーバーに指定された が代わりに使用されます。nullsigningConfig

buildTypes {
        debug {
            // Set to null to override default debug keystore and defer to the product flavor.
            signingConfig null
            applicationIdSuffix ".d"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

おすすめ記事