J'essaie de créer un seul projet avec 2 saveurs: gratuit et pro (versions).
Mon application est déjà dans PlayStore avec différents packages (par exemple: com.example.appfree et com.example.app)
Voici mon build.gradle:
defaultConfig {
applicationId "com.example.appfree"
}
productFlavors{
lite {
applicationIdSuffix 'lite'
}
pro {
}
}
Et voici mon fichier manifeste:
<?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>
J'ai essayé de télécharger une apk de construction pour les versions gratuites et professionnelles. La saveur Pro est correcte, mais la saveur gratuite n'est pas acceptée par Google, car le package est incorrect. Comment puis-je resoudre ceci?
====== Résolu: ====== applicationIdSuffix ne fonctionne qu'avec les buildTypes.
Avec le nouveau Android Gradle build system, vous pouvez facilement créer plusieurs versions différentes de votre application; par exemple, vous pouvez créer à la fois une version "gratuite" et une version "pro" de votre application ( en utilisant des saveurs), et ceux-ci doivent avoir des packages différents dans le Google Play Store de sorte qu'ils peuvent être installés et achetés séparément, tous deux installés en même temps, etc. et les versions "bêta" de votre application (en utilisant des types de build) et celles-ci peuvent également contribuer de manière similaire à des noms de packages uniques.
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"
}
}
....
de Site de projet Android Studio - ApplicationId contre PackageName
flavorDimensions "version"
productFlavors {
demo {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "version"
applicationIdSuffix ".demo"
versionNameSuffix "-demo"
}
full {
dimension "version"
applicationIdSuffix ".full"
versionNameSuffix "-full"
}
}