私はfreeとpro(バージョン)の2種類のフレーバーで1つのプロジェクトを作成しようとしています。フレーバー間で異なるパッケージ名を使用するにはどうすればよいですか?
マイアプリは異なるパッケージ(例:com.example.appfreeとcom.example.app)とPlayStoreにすでに存在する。これは私の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をアップロードしようとしました。プロの味は大丈夫ですが、パッケージが正しくないため、Googleでは無料の味を受け入れません。これをどうすれば解決できますか?
======解決:====== applicationIdSuffixだけbuildTypesで動作します。新しいAndroidのGradleのビルドシステムで
から私は 'applicationIdSuffix'は味のために働いていることを認識していませんでした。フレーバーに使用したいアプリケーションIDを正確に記入するには、 'applicationId'を使います。 – CommonsWare
@CommonsWare、すばらしい答え! applicationIdSuffixはbuildTypesでのみ動作します!私はapplicationIdを使用して、それは完全に動作します! :) –