2016-12-28 91 views
1

我有一個Android應用程序,有兩種風格:基本和高級。 Basic已經在AppStore上,並且包名稱爲com.domain.something。我想發佈第二個爲com.domain.something.advanced。可能嗎?或者是第二個是第一個子包會引起麻煩?程序包命名約定Android

+0

這是可能的,那就是你需要如何完全做到這一點,如果來自同一發佈者的路徑層次結構中的所有應用程序在這種情況下都有用以識別它們 –

+0

如果您需要清除更多com.wad。 games.advanced是一個包名,表示由程序員創建的games.advanced應用程序/由wad.com擁有 –

回答

4

是的,這是可能的,並不會在Play商店中造成任何問題。

您需要閱讀Configure Build Variants指南,獲取更多關於爲「高級」版本設置產品風味的信息。您可以在構建類型或產品風格中使用applicationIdSuffix爲您的特定變體的應用程序ID設置後綴。

你的build.gradle最終會看起來像這樣:

android { 

    defaultConfig { 
     applicationId "com.domain.something" 
    } 

    buildTypes {...} 

    productFlavors { 
     basic {...} 

     advanced { 
      applicationIdSuffix ".advanced" 
     } 
    } 
} 

然後,您可以通過編程與生成BuildConfig類檢查你的產品的風味,或者把你的代碼,advanced版本在advanced產品味道的源文件夾(/src/advanced/java,/src/advanced/res等)。

+0

如果我們使用'advanced { applicationIdSuffix「.advanced」 }'並構建一個簽名的apk,它將隨包名稱>'applicationId + applicationIdSuffix'我是對的嗎? –

+1

@Charuka,這是正確的。當您在Android Studio中生成已簽名的APK時,您可以選擇要使用的產品風格,或者如果您使用的是Gradle命令行,則可以使用相應的任務名稱(例如'assembleAdvancedRelease')指定產品風格。所有使用'basic'風格的APK都會在最後使用沒有'.advanced'的常規'applicationId'。 –

+0

感謝分享我的+1 +1 –