2016-12-28 86 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 –