2011-12-22 63 views
2

有谁知道聪明的方式,理想情况下使用Eclipse/ADT工作流,将特定资源应用于项目,具体取决于它是调试还是发布版本(即在Eclipse无论应用程序是运行还是导出)?我们常常遇到的常见用例是API键(如Maps)。设置一个专门为所有调试字符串创建strings.xml文件的项目,然后对所有发布字符串单独创建一个项目将非常好。构建配置特定资源(调试与发布)

有没有办法做到这一点,而无需移动到ANT或Maven风格的建筑?

+1

有几个选项/想法张贴在这里: http://stackoverflow.com/questions/3029819/android-automatically-choose-debug-release-maps-api-key/3828864 – mbeaty 2011-12-22 20:52:07

回答

2

虽然这不是您要求的,但我强烈建议您自动化发布版本,因为您希望每次构建时都保持一致和正确。

对于开发,您可以在这种情况下继续使用Eclipse工作流程。对于我自己的应用程序Rainy Days,我在ant版本中将调试vs发布映射键切换出来。我已经在一个字符串资源中设置了map key,并在ant build中替换了该字符串。然后我使用Jenkins构建发布版,并在构建成功时从Jenkins中获得祝福的apk。关于这一点的好处是,您可以通过单元测试和设备安装测试以自动化的方式进一步自动化构建。

恕我直言,你不应该在你的代码中检测到调试版本,因为它增加了更多的代码路径,使你的代码更加复杂,甚至在运行时引入开销。

+0

谢谢你你在这件事上的想法。 – Devunwired 2012-02-19 05:31:52

+0

@bottleapp你能详细解释一下如何切换/替换字符串文件中的值吗? – 2012-05-15 21:49:02

+0

@SandeepChayapathi我使用[此任务](http://ant.apache.org/manual/Tasks/replaceregexp.html)查找并替换资源文件中的文本。 – botteaap 2012-05-16 13:12:08