2016-12-28 2 views
1

У меня есть приложение для Android, в котором есть два варианта: базовый и продвинутый. The 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 в своих типах сборки или вкусах продукта, чтобы установить суффикс вашего идентификатора приложения для этого конкретного варианта.

Ваш build.gradle будет в конечном итоге выглядеть примерно так:

android { 

    defaultConfig { 
     applicationId "com.domain.something" 
    } 

    buildTypes {...} 

    productFlavors { 
     basic {...} 

     advanced { 
      applicationIdSuffix ".advanced" 
     } 
    } 
} 

Вы можете затем программно проверить вкус продукта с генерируемым BuildConfig класса, или поставить свой код для версии advancedadvanced в продукте источник-источник аромата (/src/advanced/java, /src/advanced/res, и т.п.).

+0

Если мы используем 'advanced { applicationIdSuffix" .advanced " }' и создаем подписанный apk, который выйдет с пакетом name> 'applicationId + applicationIdSuffix' я прав? –

+1

@Charuka это правильно. Когда вы создаете подписанный APK в Android Studio, вы можете выбрать вкус продукта, который хотите использовать, или если вы используете командную строку gradle, вы можете указать вкус продукта, используя соответствующее имя задачи (например, 'assembleAdvancedRelease'). Все APK, использующие аромат 'basic', по-прежнему будут иметь регулярный' applicationId' без '.advanced' в конце. –

+0

благодарит за использование +1 от меня –

Смежные вопросы