ここで答えを実装しようとしています:
しかし、それを適切に機能させることはできません。「plist にビルド番号がありません」というエラー 2 で失敗します
しかし、ビルド番号を plist に入れると、スクリプトは次のビルドでそれをクリアし、同じことが何度も繰り返されます。
何か案は?
ここで答えを実装しようとしています:
しかし、それを適切に機能させることはできません。「plist にビルド番号がありません」というエラー 2 で失敗します
しかし、ビルド番号を plist に入れると、スクリプトは次のビルドでそれをクリアし、同じことが何度も繰り返されます。
何か案は?
ビルド番号をインクリメントする方法は次のとおりです。
[ターゲット] > [概要] タブで、初期ビルド # を設定します。
次に、このスクリプトを使用してビルド番号を増やします。
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%04d" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
または、16 進数のビルド番号が必要な場合:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%04X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
私の解決策は次のとおりです。
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(echo $buildNumber | sed 's/0*//')
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%04d" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
sed を使用して先頭のゼロを削除し、値をインクリメントして、4 桁のゼロが埋め込まれた数値を使用して plist ファイルに出力します。
また、Jenkinsを使用する場合は、Jenkinsビルド番号を使用できます
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$INFOPLIST_FILE";