36

フリーとプロ (バージョン) の 2 つのフレーバーで単一のプロジェクトを作成しようとしています。

私のアプリは既に異なるパッケージで PlayStore にあります (例: com.example.appfree と com.example.app)

これは私のbuild.gradleです:

defaultConfig {
   applicationId "com.example.appfree"
}
productFlavors{
   lite {
       applicationIdSuffix 'lite'
   }

   pro {

   }
}

そして、これは私のマニフェストファイルです:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".SplashScreenActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity"/>

    </application>

</manifest>

無料とプロのフレーバーのビルド apk をアップロードしようとしました。Pro フレーバーは問題ありませんが、パッケージが正しくないため、無料のフレーバーは Google に受け入れられません。どうすればこれを解決できますか?

====== 解決済み: ====== applicationIdSuffix は buildTypes でのみ機能します。

4

3 に答える 3

33

新しい Android Gradle ビルド システムを使用すると、複数の異なるバージョンのアプリを簡単にビルドできます。たとえば、アプリの「無料」バージョンと「プロ」バージョンの両方を (フレーバーを使用して) ビルドできます。これらは、Google Play ストアに異なるパッケージを用意して、別々にインストールおよび購入できるようにする必要があります。同時に、など。同様に、アプリの「デバッグ」バージョンと「アルファ」バージョンと「ベータ」バージョンの両方を (ビルド タイプを使用して) ビルドすることもでき、これらも同様に一意のパッケージ名に貢献できます。

app/build.gradle:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 19
    buildToolsVersion "19.1"
    defaultConfig {
        applicationId "com.example.my.app"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
...

app/build.gradle:

productFlavors {
    pro {
        applicationId = "com.example.my.pkg.pro"
    }
    free {
        applicationId = "com.example.my.pkg.free"
    }
}

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}
....

Android Studio プロジェクト サイトから- ApplicationId と PackageName の比較

于 2016-09-17T23:39:39.743 に答える