1

Xcode の Build Phases でこれら 2 つの Run Script を試しましたが、どちらも機能しません。

1)

REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
buildplist="$PROJECT_DIR/build.plist"
/usr/libexec/PlistBuddy -c "Set :STBuildNumber $REV" ${buildplist}

2)

plist="$PROJECT_DIR/build.plist"
svn update
rev=$(svn info | grep '^Revision:' | sed -e 's/^Revision: //')
/usr/libexec/PlistBuddy -c "Set :STBuildNumber $rev" "$plist"

プロジェクト フォルダーに build.plist ファイルがあり、キー値は "STBuildNumber" です。プロジェクトをビルドするたびに、値は常に 0 に設定されます。

考えられる理由を知っている人はいますか?私は SVN クライアントとして Cornerstone を使用していますが、xcode の元のクライアントではありません。仮想ボックスを使用してMac OSも実行しています。私はいつも SVN から最新のプロジェクト ファイルをチェックアウトしますが、私だけが SVN 番号を取得できず、友人はそれを取得できます。また、SVN から同じプロジェクト ファイルをチェックアウトしました。

助けてくれてありがとう。

4

1 に答える 1

1

ヘッダーファイル(svnでは無視されます)を生成します。リスト内でスクリプトを上にドラッグして、「ソースのコンパイル」フェーズの前にスクリプトを実行するようにしてください。

詳細については、次のスクリプトを参照してください。

VERS=`/usr/libexec/PlistBuddy ${INFOPLIST_FILE} -c "print CFBundleVersion"`
REV=`svnversion -n`
if [ "$?" -eq "0" ] && [ "$CONFIGURATION" != "Distribution" ] ; then
  REV=$VERS"-r"$REV;
else
  REV=$VERS;
fi
echo "#define VersionString @\"$REV\"" > ${PROJECT_DIR}/version.h

デバッグバージョンのみがバージョン文字列にリビジョンを持っています:たとえば、1.0-r212。ソースをsvnの外部にエクスポートすると、svnversionは「エクスポートされた」と報告します。

于 2013-01-18T07:57:36.177 に答える