0

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

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

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

4

2 回答 2

1

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

于 2015-08-07T14:52:40.097 回答
0

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

安卓

<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>
于 2015-08-10T19:36:22.773 回答