我们使用 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>