Xcode 打包報(bào)錯(cuò) Command PhaseScriptExecution failed with a nonzero exit code,看這篇就夠了。

前言

最近接手了一個(gè)新項(xiàng)目,完成一個(gè)小版本開發(fā)后,使用模擬器或真機(jī)調(diào)試、編譯等都不出錯(cuò),唯獨(dú)在進(jìn)行Archive時(shí),一直會(huì)出現(xiàn)以下錯(cuò)誤:

Command PhaseScriptExecution failed with a nonzero exit code

可以運(yùn)行,只是很緩慢,這是Xcode的另外一個(gè)問題了。

解決方法

如果著急直接看最后的解決方法,不用看解決的歷程。

方法一

這個(gè)問題網(wǎng)上有很多都讓更改構(gòu)建方式:

這其實(shí)是一個(gè)Xcode10引起的bug。 解決方案: 在Xcode菜單欄選擇File -> Workspace Setting -> Build System 選擇Legacy Build System 重新運(yùn)行即可。

但是值得注意的是,我用最新的Xcode 的版本并沒有換構(gòu)建方式的選項(xiàng)了,這個(gè)是在13.4.1的版本之前有了,早已經(jīng)拋棄了,如果有改這個(gè)也可以,只是權(quán)宜之計(jì)。

image.png
image.png

還有的是報(bào)某個(gè)framework,permission denied

輸入sudo chmod 777 +需要授權(quán)的文件地址,輸入你的開機(jī)密碼,再次回車就可以了。777是最高權(quán)限,

方法二

使用sudo gem update cocoapods更新cocoapods

刪除項(xiàng)目根目錄下的Podfile.lock、項(xiàng)目名.xcworkspace文件和Pods文件夾
重新使用 pod install,再次打包正常

方法三 清理工作區(qū)緩存系列

  1. 首先在 Product -> Scheme 中選擇當(dāng)前項(xiàng)目的主代碼模塊

  2. 選擇 Product -> Clean Build Folder 清理工作區(qū)

  3. 之后再重新編譯項(xiàng)目代碼就可以了

快捷鍵command+shift+k

說出現(xiàn)這個(gè)問題的主要原因是工作區(qū)已滿,導(dǎo)致代碼編譯出現(xiàn)錯(cuò)誤。

方法四——我的問題的解決方法——修改 Pods-項(xiàng)目名稱-frameworks.sh 文件

以上的方法對(duì)于我來說然并卵,始終沒有解決問題,直到用了下面的解決方法,才可以:

找到下面的路徑:

Xcode -> Pods -> Targets Support Files -> Pods-工程名 -> Pods-項(xiàng)目名-frameworks.sh

image.png

搜索找到:

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

找到后將其替換為

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

完成后重新Archive就OK了。

這段代碼主要是用于將動(dòng)態(tài)庫(即.framework文件)復(fù)制到Xcode項(xiàng)目的build目錄下。

具體來說,{TARGET_BUILD_DIR}表示的是build目錄的路徑,${FRAMEWORKS_FOLDER_PATH}表示的是在build目錄中所有framework的存儲(chǔ)位置

至此,我的問題算是解決了,這個(gè)問題,跟升級(jí)Xcode15 有一定的關(guān)系,會(huì)有一些新問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容