2016-09-17 71 views
9

2 aroma içeren tek bir proje oluşturmaya çalışıyorum: ücretsiz ve pro (sürümler).Tatlar arasında farklı paket isimleri nasıl kullanılır?

uygulamam farklı paket ile Play Store'daki zaten (Ör: com.example.appfree ve com.example.app)

Bu benim build.gradle geçerli:

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

    pro { 

    } 
} 

Ve bu benim bildirim dosyası:

<?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> 

Ücretsiz ve profesyonel tatlar için bir derleme yüklemeyi denedim. Pro lezzeti tamam, ancak paket yanlış olduğu için ücretsiz lezzet Google tarafından kabul edilmez. Bunu Nasıl Çözebilirim?

====== Çözünürlük: ====== applicationIdSuffix, yalnızca buildTypes ile çalışır.

+4

Android Studio Project Site - ApplicationId versus PackageName I applicationIdSuffix' tatlar çalıştı 'farkında değildi. Lezzet için kullanmak istediğiniz uygulama kimliğini hecelemek için 'applicationId' komutunu kullanın. – CommonsWare

+0

@CommonsWare, harika cevap! applicationIdSuffix sadece buildTypes ile çalışır! ApplicationId kullandım ve mükemmel çalışıyor! :) –

cevap

9

Yeni Android Gradle derleme sistemi sayesinde, uygulamanızın birden çok farklı sürümünü kolayca oluşturabilirsiniz; Örneğin, uygulamanızın hem "ücretsiz" sürümünü hem de "pro" sürümünü (tatları kullanarak) oluşturabilir ve bunların Google Play mağazasında ayrı ayrı yüklenip satın alınabilecek şekilde farklı paketler içermesi gerekir. aynı zamanda, vb. Benzer şekilde, uygulamanızın "hata ayıklama" ve "alfa" ve "beta" sürümlerini de oluşturabilirsiniz (derleme türlerini kullanarak) ve bunlar benzersiz paket adlarına da benzer şekilde katkıda bulunabilir.

uygulama/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" 
    } 
} 
.... 

+0

Soruma cevap vermediniz: Ücretsiz ve profesyonel tatlar için bir yapım apk yüklemeyi denedim. Pro lezzeti tamam, ancak paket yanlış olduğu için ücretsiz lezzet Google tarafından kabul edilmez. Bunu Nasıl Çözebilirim? –

+1

Size bunu nasıl yapacağınızı gösterdikten sonra, uygulamanızın lezzet tanımlarında uygun paket adlarını kullanmanız yeterlidir. – nasch