worklight混合应用多个环境

时间:2015-08-07 14:34:29

标签: android ios ibm-mobilefirst environments

我们正在开发移动式第一个混合应用程序,我们有多个环境DEV,QA,STAGING和PROD。虽然此应用程序正在Android / iPhone设备上进行测试,但我们的测试人员有时需要同时为多个环境(例如DEV / QA)安装apks / ipa文件。现在我们正在做的是在安装QA版本之前卸载DEV版本。

一次在同一设备上安装两个DEV / QA应用程序的最佳选择是什么。

一种选择是将应用程序重命名为不同的环境,例如app-DEV,app-QA作为构建过程的一部分。这是最好的选择。如果是,我们需要更改这个名称的文件是什么。   任何更好的选择

2 个答案:

答案 0 :(得分:1)

要在一台设备上安装一个应用程序的多个版本,它们都需要具有不同的包名称。查看this question以了解如何更改

答案 1 :(得分:0)

我们使用ant build根据环境重命名包: 恩。使用ant和xmltask。 env是环境(dev,test,qa)我们正在更新清单包和应用程序标题.. ucFirst是一个jC任务,它是uCases字符串的第一个字母

的Android

<target name="updateAndroidPackage" depends="checkProd" unless="isProd">
  <echo>In Update Android Package:${env}:</echo>
  <xmltask source="${appPath}/${appName}/android/native/AndroidManifest.xml" dest="${appPath}/${appName}/android/native/AndroidManifest.xml">
    <copy path="/manifest/@package" property="origPackageName"/>
  </xmltask>
  <echo>Existing Package:${origPackageName}</echo>
  <xmltask source="${appPath}/${appName}/android/native/AndroidManifest.xml" dest="${appPath}/${appName}/android/native/AndroidManifest.xml">
    <replace path="/manifest/@package" withText="${origPackageName}${env}"/>
  </xmltask>

  <ucfirst string="${env}" to="envFirst" />
  <xmltask source="${appPath}/${appName}/android/native/res/values/strings.xml" dest="${appPath}/${appName}/android/native/res/values/strings.xml">
    <replace path="/resources/string[@name='app_name']/text()" withText="${appName} ${envFirst}"/>
  </xmltask>
</target>

IOS:

<target name="renamePackage" depends="checkProd" unless="isProd">
        <ucfirst string="${env}" to="envFirst" />
        <exec executable="/usr/libexec/PlistBuddy">
            <arg value="-c" />
            <arg value="Set :CFBundleIdentifier com.client.${env}.${appName}" />
            <arg value="${appPath}/${appName}/${iosPath}/${appName}${appName}Iphone-Info.plist" />
        </exec>
        <exec executable="/usr/libexec/PlistBuddy">
            <arg value="-c" />
            <arg value="Set :CFBundleDisplayName ${appName} ${envFirst}" />
            <arg value="${appPath}/${appName}/${iosPath}/${appName}${appName}Iphone-Info.plist" />
        </exec>

    </target>