In my app-level build.gradle I have the following flavors:
productFlavors {
originalFlavour{
}
freeFlavour{
}
}
The thing is building both flavors I get the same App Name. Instead I would like to have different app names for each flavors. Just adding a suffix would be useful. Hope someone could help me.
Thanks in advance
EDIT:
app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="z.fncapps.etsiipod" >
<uses-permission
android:name="android.permission.CALL_PHONE"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- actvities declared here -->
</application>
</manifest>
app/src/freeFlavour/AndroidManifest.xml
<uses-permission
android:name="android.permission.CALL_PHONE"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- actvities declared here -->
</application>
Remove the app_name
string from your existing strings.xml
file, then you can do this:
productFlavors {
originalFlavour{
resValue "string", "app_name", "Original Flavor Name"
}
freeFlavour{
resValue "string", "app_name", "Free Flavor Name"
}
}
Then the existing reference to @string/app_name
in your manifest will refer to a generated string resource, which is based on the flavor selected.
Note that if you specify a label for your launch Activity (by defining the android:label
xml tag in the <activity>
element), that value will be used in many user-visible places rather than your application's label. To overcome this for your case, you can just remove the label from your <activity>
element altogether. See https://stackoverflow.com/a/13200774/2911458 for more details on this distinction.