Flutter - 解決混合開發(fā)iOS腳本打包遇到的問題

使用 Xcode 手動打包是正常的,但是使用腳本打包會報錯,錯誤如下:

The following build commands failed:
    PhaseScriptExecution [CP-User]\ Run\ Flutter\ Build\ Script .../Script-C3A097A8FE12FF5F875B057C.sh
    
flutter build ios --release
then re-run Archive from Xcode.
Command PhaseScriptExecution failed with a nonzero exit code

定位錯誤

Flutter 環(huán)境目錄下,按圖上所示地址找到 xcode_backend.sh,也可以直接看 官方腳本鏈接

  # Archive builds (ACTION=install) should always run in release mode.
  if [[ "$ACTION" == "install" && "$build_mode" != "release" ]]; then
    EchoError "========================================================================"
    EchoError "ERROR: Flutter archive builds must be run in Release mode."
    EchoError ""
    EchoError "To correct, ensure FLUTTER_BUILD_MODE is set to release or run:"
    EchoError "flutter build ios --release"
    EchoError ""
    EchoError "then re-run Archive from Xcode."
    EchoError "========================================================================"
    exit -1
  fi

解決方案

可以看到,官方腳本的說明里面給出兩個解決方案

方案一:直接設置 FLUTTER_BUILD_MODErelease

方案二:先運行 flutter build ios --release ,再使用 Xcode 去打包

這里我們是用 Jenkins 腳本進行打包,所以方案二不適用,方案一更加方便些

# 設置Flutter的編譯模式為release
export FLUTTER_BUILD_MODE=release

# 執(zhí)行原有項目的打包腳本
./script/build_iOS.sh
歡迎關注微信公眾號:全棧行動
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容