今是昨非

今是昨非

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

Xcode 14.3 封存失敗

背景#

由於手機升級到 iOS 16.4,想要進行真機調試,所以升級了 Xcode 到 14.3。

在升級到 Xcode 14.3 之前,Debug 和 Archive 都沒有問題;但在升級到 Xcode 14.3 之後,Debug 沒有問題,但 Archive 就報錯了。錯誤訊息如下:


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,可以看到在 Xcode 14.3 beta 版本時,CocoaPods 就已經有人發現了這個問題,結果在 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}")",然後重新編譯即可成功。

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。