3

Android Studio (v2.2) でグレード ファイルを同期すると、次のエラー ログが表示されます。

Error:(184, 0) Could not get unknown property 'freeAppDev' for ProductFlavor container.


バックグラウンド:

3 つの開発環境 (例: dev、uat & production) 用の 2 つのバージョン (例: freeApp &paidApp) のアプリがあります。app.gradle ファイルを次のように設定します。

flavorDimensions "ver", "env"

productFlavors {
    freeApp {
        dimension "ver"
        ...
    }
    paidApp {
        dimension "ver"
        ...
    }

    dev {
        dimension "env"
        ...
    }
    uat {
        dimension "env"
        ...
    }
    production {
        dimension "env"
        ...
    }
}

buildTypes については、独自の目的でsigningConfig を設定できるように、カスタマイズされたデバッグ タイプ「アルファ」を作成しました。

buildTypes {
    alpha {
        productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
        productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
        productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey

        productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
        productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
        productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
    }
    ...
}

custom1DebugKey、custom2DebugKey、customReleaseKeyはsigningConfigsであり、これは重要ではないため、コードの貼り付けをスキップします。

productFlavors に複数のディメンションがある場合に、「productFlavors.XXX.signingConfig」で XXX の正しい名前を取得する方法を教えてください。ありがとう。


PS詳細については、次のようにgradleファイルを変更することで完全に機能します。

productFlavors {
    freeAppDev {
        ...
    }
    freeAppUat {
        ...
    }
    freeAppProduction {
        ...
    }

    paidAppDev {
        ...
    }
    paidAppUat {
        ...
    }
    paidAppProduction {
        ...
    }
}


buildTypes {
    alpha {
        productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
        productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
        productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey

        productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
        productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
        productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey
    }
    ...
}
4

1 に答える 1

0

したがって、環境のみに基づいて署名キーを割り当てているようです:

productFlavors.freeAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.freeAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.freeAppProduction.signingConfig signingConfigs.customReleaseKey

productFlavors.paidAppDev.signingConfig signingConfigs.custom1DebugKey
productFlavors.paidAppUat.signingConfig signingConfigs.custom2DebugKey
productFlavors.paidAppProduction.signingConfig signingConfigs.customReleaseKey

その場合は、次のように使用できます。

productFlavors.dev.signingConfig signingConfigs.custom1DebugKey
productFlavors.uat.signingConfig signingConfigs.custom2DebugKey
productFlavors.production.signingConfig signingConfigs.customReleaseKey

にはすべての製品フレーバー (あなたの場合: freeApp productFlavors、paidApp、dev、uat、production) が含まれますが、それらを使用しようとしているようなディメンションに基づいてそれらを組み合わせないことに注意してください。

于 2018-05-20T15:13:05.430 に答える