web-dev-qa-db-ja.com

Xcode 11アーカイブはPhaseScriptExecutionに失敗します

プロジェクトを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」のスクリプトがないので、どうすればよいかわからない

5
Navtti

Xcode 11+で機能したスクリプトは次のとおりです
新しいRun Script PhaseBuild 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 によって投稿されました。

お役に立てれば

0
S1LENT WARRIOR

上記のすべての答えはそれだけではうまくいかなかったので、Appleのドキュメント(下の参考文献を参照)を含めて)の束を計算する必要がありました。誰かがすべてのステップを持つのを助けます。

Info.plistで次のように設定します:

  • CFBundleShortVersionStringを$(MARKETING_VERSION)に
  • CFBundleVersionを$(CURRENT_PROJECT_VERSION)に

ターゲットビルド設定:

  • バージョン管理システムを「Apple Generic」に設定します
  • 現在のプロジェクトバージョンを1(または任意のバージョン)に設定します
  • マーケティングバージョンを1.0.0(または任意のバージョン)に設定します

スキーム>アーカイブ:

  • ポストアクション「スクリプト実行アクション」を追加します:
    • ビルド設定を提供する:アプリ
    • スクリプト内:cd ${PROJECT_DIR} ; xcrun agvtool next-version -all ;

  1. cuimingda によって言及されたAppleドキュメント: https://developer.Apple.com/library/archive/qa/qa1827/_index.html
  2. moucheg で言及されている手順の一部
0
Toka