プロジェクトをSwift 3.2からSwift 4 in Xcode 10に移行した後、Xcode 11にアーカイブしようとすると、次のエラーが発生します。
PhaseScriptExecution Run\Script /Users/desarrollo/Library/Developer/Xcode/DerivedData/MyApp-iOS-ewcyzseaubkujucenluznpmduhoo/Build/Intermediates.noindex/ArchiveIntermediates/MyApp-iOS-DEV/IntermediateBuildFilesPath/MyApp-iOS.build/Release-iphoneos -iOS-DEV.build/Script-E95AEDE51E54767F00B60429.sh(プロジェクト 'MyApp-iOS'のターゲット 'MyApp-iOS-DEV'内)
。 。 。
/Users/desarrollo/Library/Developer/Xcode/DerivedData/MyApp-iOS-ewcyzseaubkujucenluznpmduhoo/Build/Intermediates.noindex/ArchiveIntermediates/MyApp-iOS-DEV/IntermediateBuildFilesPath/MyApp-iOS.build/Release-iphoneos/MyApp-iOS-DEV .build/Script-E95AEDE51E54767F00B60429.sh:5行目:$(CURRENT_PROJECT_VERSION)+ 1:構文エラー:オペランドが必要です(エラートークンは "$(CURRENT_PROJECT_VERSION)+ 1")
エラースタックでexport CURRENT_PROJECT_VERSION = 114が見つかります
「$(CURRENT_PROJECT_VERSION)+ 1」のスクリプトがないので、どうすればよいかわからない
Xcode 11+
で機能したスクリプトは次のとおりです
新しいRun Script Phase
をBuild Phases
に追加するだけですLink Binary with Libraries
フェーズの下に追加します。
#!/bin/sh
# To make executable, use: chmod u+x Build-Versioning-Scripts/Increment_Build_Number.sh
# to locate your target's info.plist use
# ${PRODUCT_SETTINGS_PATH}
echo "----"
echo "Info.plist for target: ${PRODUCT_SETTINGS_PATH}"
buildNum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "${PRODUCT_SETTINGS_PATH}")
echo "Current build #: $buildNum"
if [ -z "$buildNum" ]; then
echo "No build number found in $PRODUCT_SETTINGS_PATH"
exit 2
fi
buildNum=$(expr $buildNum + 1)
echo "Build # incremented to: $buildNum"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNum" "$PRODUCT_SETTINGS_PATH"
echo "----"
exit 0
このスクリプトは、最初に hereAlex Zavatone によって投稿されました。
お役に立てれば
上記のすべての答えはそれだけではうまくいかなかったので、Appleのドキュメント(下の参考文献を参照)を含めて)の束を計算する必要がありました。誰かがすべてのステップを持つのを助けます。
Info.plistで次のように設定します:
ターゲットビルド設定:
スキーム>アーカイブ:
cd ${PROJECT_DIR} ; xcrun agvtool next-version -all ;