我正在努力寻找为6个以上不同客户构建/打包Android应用的最佳方式。我可以在SVN中为所有客户使用不同的分支,但应用程序之间的唯一区别是资源文件夹中的一些值(drawables,strings等)。
我编写了一个导入标准Android build.xml 的ant脚本。该脚本执行以下操作:
这似乎工作得很好,直到我刚刚编写了更改包名称的部分。由于包名称更改, R 类的位置也发生了更改,这意味着构建失败,因为Java类从标准包中导入 R 类。
我不希望有一个更改代码的构建脚本。我希望能够对所有文件进行最少的更改。
Soo ..问题确实是:
答案 0 :(得分:4)
您真的需要更改包名吗?更改包名称很难自动完成。话虽如此,这是我解决问题的方法:
我的方案是我有一个应用程序可以部署到30-200个不同的已签名APK文件,其中文件之间的唯一区别是一些资源(drawables,字符串,值等)和包名称。
我是通过处理作为模板项目的应用程序的通用版本来实现的。一旦这个工作,我准备部署,我调用一个bash脚本,为每个目标循环执行以下步骤:
这平衡了可怕的匮乏时间和快速发展的时间。我真的没有看到比这更优雅/更强大的解决方案。
最后一个小提示:在android清单中使用相对包名称,如“.Application”而不是“com.mycompany.myproject.Application”。这样,您只需要在一个位置更改包名称。
答案 1 :(得分:1)
是否有可能通过制作包含主要项目的6个以上不同项目来解决这个问题。这样您就可以覆盖资源并制作不同的apk