背景#
iOS 16.4 にアップグレードしたため、実機デバッグを行うために Xcode も 14.3 にアップグレードしました。
Xcode 14.3 にアップグレードする前は、デバッグとアーカイブに問題はありませんでした。しかし、Xcode 14.3 にアップグレードした後、デバッグは問題ありませんが、アーカイブでエラーが発生します。エラーメッセージは以下の通りです:
building file list ... rsync: link_stat "/Users/xxx/.../AFNetworking.framework" failed: No such file or directory (2)
done
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/9e200cfa-7d96-11ed-886f-a23c4f261b56/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
Command PhaseScriptExecution failed with a nonzero exit code
解決方法#
Xcode 14.3 Archive failure when running Cocoapods build script phase
を検索すると、CocoaPods の問題が Xcode 14.3 ベータ版で既に報告されていることがわかります。しかし、Xcode 14.3 の正式版でも問題が解決されていませんでした... 解決策は以下の通りです:
-
もしコンピュータに Xcode 14.2 がまだある場合、
Command Line Tools
を Xcode 14.2 に変更してビルドします。以下の画像を参照してください: -
Xcode Cloud を使用している場合、問題がある場合は、Xcode のバージョンを Xcode 14.2 に変更します。以下の画像を参照してください:
-
もしコンピュータに最新の Xcode 14.3 しかない場合(私の場合と同じ)、以下の修正を行います:
...-frameworks.sh
ファイルを見つけて、次の行を置換します:source="$(readlink "${source}")"
以下のように置換します:
source="$(readlink -f "${source}")"
簡単ですね。問題は、この
...-framework.sh
がどこにあるかわからないことです。対処方法は:置換する必要のある
source="$(readlink "${source}")"
の部分をグローバル検索し、それを正しいsource="$(readlink -f "${source}")"
に置換し、再度ビルドすれば成功します。