我们正在开发移动式第一个混合应用程序,我们有多个环境DEV,QA,STAGING和PROD。虽然此应用程序正在Android / iPhone设备上进行测试,但我们的测试人员有时需要同时为多个环境(例如DEV / QA)安装apks / ipa文件。现在我们正在做的是在安装QA版本之前卸载DEV版本。
一次在同一设备上安装两个DEV / QA应用程序的最佳选择是什么。
一种选择是将应用程序重命名为不同的环境,例如app-DEV,app-QA作为构建过程的一部分。这是最好的选择。如果是,我们需要更改这个名称的文件是什么。 任何更好的选择
答案 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>