プロジェクトをコンパイルするとき、システムのユーザー名が一致すると、このスクリプトは Xcode プロジェクトのビルド バージョンを 1 つインクリメントする必要があります。これらは、[ターゲット] -> [ビルド フェーズ] -> [Xcode でスクリプトを実行] 内のスクリプト (Applescript、Python、または Perl ではない) 内の単なる Unix コマンドであることに注意してください。
ターミナルで「echo $USER」を実行しました。これにより、ログインしているユーザーのユーザー名が正しく出力されます。これは、2 番目のコード ブロックの条件ステートメントに配置した文字列と同じです。
コードの最初のブロックが機能します。条件ステートメントを追加する 2 番目のステートメントは、追加しません。
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
#!/bin/bash
username=$USER
if [ username == "erik" ]; then
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi
構文の問題:
$USER (大文字と小文字を区別) の解析
if ステートメントの閉じ括弧の直後にあるセミコロン If
ステートメントと同じ行の Then ステートメント