web-dev-qa-db-ja.com

Xcode 11の現在のアプリバージョンをスクリプトで読み取る方法

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という新しいセクションがあります

enter image description here

そしてCFBundleShortVersionStringは自動的に$(MARKETING_VERSION)に変更されました。 Xcodeは自動的にそれを処理し、手動で静的な数値に変更して、Xcodeにそれを機能させたくありません。

11

問題は、この新しい_MARKETING_VERSION_にアクセスし、run scriptを使用してlaunchScreenラベルに設定するにはどうすればよいですか?

30

値を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"
0
rickrvo