今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

Xcode 14.3 アーカイブ失敗

背景#

携帯電話が 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 の正式版でも問題が発生しています。。。解決策は以下の通りです:

  1. コンピュータに Xcode 14.2 がまだある場合は、Command Line Toolsを Xcode 14.2 に変更します。以下の図のように:

    Xcode Command Line Tools の変更

  2. Xcode Cloud で問題が発生した場合は、Xcode バージョンを Xcode 14.2 に変更できます。以下の図のように:

    Xcode Cloud の変更

  3. コンピュータに最新の Xcode 14.3 しかない場合、例えば私のように。。。次のように変更する必要があります:

    ...-frameworks.sh ファイルを見つけ、以下を置き換えます。

    source="$(readlink "${source}")"

    source="$(readlink -f "${source}")"

    簡単ですよね、問題は、この...-framework.sh がどこにあるかです。私もわかりません。

    方法は:置き換えたいこの部分source="$(readlink "${source}")"をグローバルに検索し、それを正しいsource="$(readlink -f "${source}")"に置き換え、再度コンパイルすれば成功します。

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。