今是昨非

今是昨非

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

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}")"に置換し、再度ビルドすれば成功します。

参考#

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