1

ゲーム開始前に、スクリプト ファイルを使用して、androidmanifest.xml でビルド番号として使用される versionCode を現在の git コミット番号に自動的に変更することができました。しかし、特定の理由により、versionCode をゲームのビルド番号として使用したくありません。ゲーム開始前にスクリプトを使用して git コミット番号を保存し、後でゲーム中にその値を読み取ってゲームに表示できる versionCode と VersionName 以外のものを使用したいと考えています。だから私は2つのことが必要です

  1. この値を保存できるandroidManifestファイルに追加のタグを作成する方法
  2. そして、ゲーム実行前にスクリプトファイルで使用されるタグ値を変更するスクリプト

次のスクリプトを使用して、マニフェストの versionCode タグを変更します

newverfull=$(git --git-dir="../../.git" --work-tree="../../" rev-list master | wc -l)

manf=AndroidManifest.xml

newvers=`echo $newverfull | sed 's/[^0-9].*$//'`

vers=`sed -n '/versionCode=/s/.*"\([0-9][0-9]*\)".*/\1/p' $manf`

sed /versionCode=/s/'"'$vers'"'/'"'$newvers'"'/ $manf  >new$manf && cp new$manf $manf && rm -f new$manf

私はあなたの助けに感謝します。ありがとう!

4

3 に答える 3

1

このシェルスクリプトを見てください。

https://github.com/eaglesakura/jenkins-script/blob/master/update-AndroidManifest.sh

于 2013-08-27T23:42:19.427 に答える
1

以前に投稿したスクリプトを変更することができました。また、マニフェスト ファイルにメタデータを作成し、以下のスクリプトを使用してその値を変更しました。

助けてくれてありがとう。乾杯!


newverfull=$(git --git-dir="../../.git" --work-tree="../../" rev-list master | wc -l)
manf=AndroidManifest.xml
verbase=`echo $newverfull | sed 's/\(.*\.\)\([0-9][0-9]*\).*$/\1/'`
vername=`sed -n '/GameVersion/s/.*"\([^"]*\)".*/\1/p' $manf`
sed /GameVersion/s/'"'$vername'"'/'"'$verbase'"'/ $manf  >new$manf && cp new$manf $manf && rm -f new$manf

于 2012-12-13T08:20:33.020 に答える
0

これが例です。カスタム タグは GameVersion です。

<application android:name=".MyApplication"
             android:icon="@drawable/icon"
             android:label="@string/app_name">

    <meta-data android:name="GameVersion" android:value="1.9" />

    <activity android:name="com.someone.something.MainActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:screenOrientation="sensor"
              android:label="@string/app_name">

アクセスするには:

    ApplicationInfo ai = _context.getPackageManager().getApplicationInfo(_context.getPackageName(),PackageManager.GET_META_DATA);
    ai.metaData.get("GameVersion")

ご覧のとおり、PackageManager への参照を取得するにはコンテキストが必要です。私はこれを行うために getApplicationContext() を使用することを好みますが、データを取得する場所である場合は、アクティビティ コンテキストを使用しても問題ありません。

于 2012-12-12T19:32:19.740 に答える