我有需要交付給多個客戶的Android應用程序。 對於每個客戶,我都有不同的圖形和配置XML文件,這些文件指定了功能和URL。針對多個客戶的Android構建配置
在構建時我們應該能夠指定應該爲其構建應用程序的客戶。然後,應該將適合指定客戶端的資源(如圖像和運行時配置)構建到應用程序中。
該項目是用Maven構建的。
任何想法?
我有需要交付給多個客戶的Android應用程序。 對於每個客戶,我都有不同的圖形和配置XML文件,這些文件指定了功能和URL。針對多個客戶的Android構建配置
在構建時我們應該能夠指定應該爲其構建應用程序的客戶。然後,應該將適合指定客戶端的資源(如圖像和運行時配置)構建到應用程序中。
該項目是用Maven構建的。
任何想法?
我結束了使用maven配置文件和android maven插件的'renameManifestPackage'和'resourceOverlayDirectory'屬性。
默認的res/dir被每個客戶特有的'resourceOverlayDirectory'覆蓋。
它工作得很好。
<!-- profile for zurich -->
<profile>
<id>zurich</id>
<properties>
<customer>zurich</customer>
<customerPackage>zurich.com</customerPackage>
<customerResources>customers/${customer}/res</customerResources>
<customerApkName>${customer}-${project.artifactId}</customerApkName>
</properties>
</profile>
,並在構建我:
<build>
<sourceDirectory>src</sourceDirectory>
<!-- the name of the generated apk and jar -->
<finalName>${customerApkName}-${project.version}</finalName>
<pluginManagement>
<plugins>
<!-- customer specific manifest and package -->
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>maven-android-plugin</artifactId>
<configuration>
<renameManifestPackage>${customerPackage}</renameManifestPackage>
<resourceOverlayDirectory>${customerResources}</resourceOverlayDirectory>
</configuration>
</plugin>
</plugins>
</pluginManagement>
是否會複製實際的'res'文件夾,或者它們全部複製到'target'文件夾中? –
太棒了。嘗試在同一設備上安裝兩個應用程序時遇到問題嗎? –
@EugenMartynov不,包名稱不同。 – peceps