Ответ 1
Я использую Eclipse для ежедневных отладочных сборников, затем Ant для релизов. У меня есть отладка и выпуск версий файла с ключом API Карт Google. Я изменил build.xml(я на SDK-инструментах R15), чтобы выполнить некоторое копирование соответствующего файла перед сборкой и впоследствии. Я изменил цели -pre-build и release так:
<target name="-pre-build">
<echo message="In pre build-----------------------------------" />
<echo message="build target ${build.target}" />
<if condition="${build.is.packaging.debug}">
<then>
<echo>Copying debug api key************************************</echo>
<copy file="${layout.dir}/googlemapdebug.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" />
</then>
<else>
<echo>Copying RELEASE api key************************************</echo>
<copy file="${layout.dir}/googlemaprelease.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" />
</else>
</if>
</target>
<target name="release"
depends="clean, -set-release-mode, -release-obfuscation-check, -package, -release-prompt-for-password, -release-nosign"
............. LINES OMITTED
.............
<!-- Zip aligns the APK -->
<zipalign-helper in.package="${out.unaligned.file}"
out.package="${out.final.file}" />
<echo>Release Package: ${out.final.file}</echo>
<echo>Always copy DEBUG MAPS API file back for Eclipse **********************</echo>
<copy file="${layout.dir}/googlemapdebug.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" />
</sequential>
</do-only-if-not-library>
<record-build-info />
</target>
Я определяю layout.dir в ant.properties(новое имя для build.properties после SDK Tools 14):
projectname=MyProject
workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo
base.dir=${workspace.dir}/${projectname}
layout.dir=${base.dir}/res/layout
Вы можете адаптировать это в соответствии с вашими потребностями, предполагая, что у вас нет слишком большого количества файлов для обмена и вывода. Я думаю, вы могли бы добавить свойство для каталога, содержащего ваши strings.xml