Отдельная строка XML для режима отладки или выпуска в манифесте android - программирование

Отдельная строка XML для режима отладки или выпуска в манифесте android

Мой манифест Android использует разные значения при отладке и при отпускании.

Какой самый простой способ отличить значение для каждого типа сборки?

При отладке:

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my-lovely-debug-api-key" />

При выпуске:

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my-lovely-release-api-key" />

ТИА.

4b9b3361

Ответ 1

Обратите внимание: если вы используете сборки по умолчанию Eclipse, вероятно, он использует специально сконфигурированный 'Ant' модуль в eclipse. Вы можете проверить степень координации Eclipse/ Ant, проверив раздел "Окно/Предпочтения/Ant" в eclipse/Prefs....

Одним из решений является более явное сотрудничество Eclipse/ Ant, так что файл 'build.xml' является частью вашего проекта (файл сборки на уровне проекта, а не файл по умолчанию, скопированный во время сборки из $SDK/ROOT).

см. здесь и прочитайте комментарии внизу здесь чтобы лучше понять, как используется файл уровня build.xml на уровне проекта.

После того, как вы переварили это, решение ниже будет иметь больше смысла...

- Решение -

Измените разделы Release и Debug файла build.xml следующим образом:

  <!-- **************** Debug specific targets *************** -->
  ...
    <target name="-set-debug-mode" depends="-setup">
  ...

        <!-- API modify belo for build-typ -->
         <copy file="config/strings.xml" todir="res/values">
       <filterset>
    <filter token="CONFIG.API" value="${config.db.api}"/>
    <filter token="CONFIG.REST" value="${config.db.rest}"/> 
    </filterset> 
    </copy>
  ...



   <!-- *************** Release specific targets ************** -->
  ...
  <target name="-set-release-mode" depends="-set-mode-check">
   ...
   <!-- API modify belo for build-typ -->
   <copy file="config/strings.xml" todir="res/values">
     <filterset>
     <filter token="CONFIG.API" value="${config.db.api.prod}"/> 
     <filter token="CONFIG.REST" value="${config.db.rest.prod}"/>
    </filterset> 
   </copy>

И в файле ant.properties 'в корневой папке поместите значения свойств для ключей API и любого другого...

# API condition builds dev|prod in DB @parse.com
config.db.api=some_key_val
config.db.rest=some_k2_val
config.db.api.prod=some_k3_val
config.db.rest.prod=some_k4_val

И свяжите его вместе в ресурсе xml, который является целью команд "copy" в сборке...

 'config/strings.xml'  

<string name="default_value_parse_key_appId">@[email protected]</string>
<string name="default_value_parse_key_rest">@[email protected]</string>