2016-05-23 8 views
1

Для того, чтобы построить различные версии моего приложения, я добавил applicationPackage свойство в файле сборки:Как изменить ApplicationID в Gluon Mobile Project

jfxmobile { 
    javafxportsVersion = '8.60.6' 

     android { 
      manifest = 'src/android/AndroidManifest.xml' 
      applicationPackage = 'com.myapp.lite' 
     } 
} 

Но сгенерированный файл APK еще называют после того, как package недвижимость в AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.myapp" 
    android:versionCode="1" 
    android:versionName="1.0.0" > 

Что такое правильный способ изменить имя пакета, если вы хотите построить различные ароматы вашего приложения, как «Lite» и «Full»?

ответ

1

В настоящее время, когда вы используете плагин Gluon для создания проекта Mobile, плагин jfxmobile создает файл по умолчанию AndroidManifest.xml на основе вашего ввода (основной класс, имя пакета). После этого любая модификация, которую вы делаете в своем проекте (например, рефакторинг имени основного класса или имя пакета) не будет обновляться в файле манифеста Android, так что вам придется делать это вручную самостоятельно.

Если вы посмотрите на source code плагина, есть способ заставить воссоздание манифеста каждый раз, когда вы запускаете android задания: Просто удалите файл под Src/Android/AndroidManifest.xml и удалите manifest свойство в файле build.gradle. Когда вы запустите android или androidIntall, новый дефолт по умолчанию будет создан под build/javafxports/tmp/android, с учетом вашего applicationPackage.

Уведомление об этом не допускает внесения каких-либо изменений в манифест, таких как добавление или удаление разрешений или изменение номеров версий. Настолько ясно, что это не полное решение.

Другим подходом будет создание пользовательской задачи, которая воссоздает файл AndroidManifest на основе ваших собственных настроек, основываясь на том, как плагин делает это сам.

Вы можете указать проблему в javafxports repo, если вы считаете, что для сборки apk требуется более динамическое решение. Например, позволяя использовать тот же подход, что и в Android, где файл strings.xml используется для установки некоторых метаданных (@string).

+0

Еще раз очень интересно. Я предполагал, что свойство 'androidApplication' работает как' defaultConfig {applicationId "com.myApp.lite"} '. Вы были отличным источником помощи на пути к моему выпуску первого магазина, который, в свою очередь, не был бы возможен без рамки Gluon. Большое спасибо за вашу помощь – jns