Xcode 11までは、現在のアプリのバージョン(AppStore用)を読み取るスクリプトを使用し、Swiftそのため。
_sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
sed -i .bak -e "/userLabel=\"APP_VERSION_LABEL\"/s/text=\"[^\"]*\"/text=\"v$versionNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
_
しかし、Xcode 11には、プロジェクトのビルド設定内にVersioningという新しいセクションがあります
そしてCFBundleShortVersionString
は自動的に$(MARKETING_VERSION)
に変更されました。 Xcodeは自動的にそれを処理し、手動で静的な数値に変更して、Xcodeにそれを機能させたくありません。
問題は、この新しい_MARKETING_VERSION
_にアクセスし、run scriptを使用してlaunchScreenラベルに設定するにはどうすればよいですか?
値をCURRENT_PROJECT_VERSIONに保存しませんか?誰かがこれをどうにかしてやりましたか
次のような値を取得できます
buildNumber=$CURRENT_PROJECT_VERSION
しかし、これは機能しません:
CURRENT_PROJECT_VERSION="" or $CURRENT_PROJECT_VERSION=""
私の場合は「」に設定しようとしています
この行ではCURRENT_PROJECT_VERSIONフィールドも設定されていません
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$appInfoPlist"