0

私たちはモバイル ファーストのハイブリッド アプリケーションに取り組んでおり、複数の環境 DEV、QA、STAGING、および PROD があります。このアプリケーションは Android/iPhone デバイスでテストされていますが、テスターは複数の環境 (DEV/QA など) の apks/ipa ファイルを同時にインストールする必要がある場合があります。現在、QA バージョンをインストールする前に、DEV バージョンをアンインストールしています。

一度に同じデバイスに両方の DEV/QA アプリケーションをインストールするための最良のオプションは何ですか?

1 つのオプションは、ビルド プロセスの一環として app-DEV 、 app-QA など、さまざまな環境に合わせてアプリケーションの名前を変更することです。これが最良の選択肢ですか。はいの場合、この名前を変更するために必要なファイルは何ですか。より良いオプション

4

2 に答える 2

0

Ant ビルドを使用して、環境に応じてパッケージの名前を変更します。ant と xmltask を使用します。env は environment(dev, test,qa) です。マニフェスト パッケージとアプリケーション タイトルを更新しています。ucFirst は、文字列の最初の文字を uCases する JavaScript タスクです。

アンドロイド

<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>

IO:

<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 に答える