背景#
携帯電話が 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}")"
に置き換え、再度コンパイルすれば成功します。