torihiplay 2025-02-11 02:19 采纳率: 0%
浏览 37

Command PhaseScriptExecution failed with a nonzero exit code 請協助檢查相關內容

主要問題
在 Unity 中使用 IL2CPP Build iOS 專案時,發生以下錯誤:

Command PhaseScriptExecution failed with a nonzero exit code

子問題
Unity 無法偵測到可用的 iPhoneOS SDK,即使 Xcode 已正確安裝並且可以正常使用:

相關報錯:
Unity.IL2CPP.Bee.BuildLogic.ToolchainNotFoundException: IL2CPP C++ code builder is unable to build C++ code. In order to build C++ code for Mac, you must have Xcode installed.
Building for Apple Silicon requires Xcode 9.4 and Mac 10.12 SDK.

Xcode needs to be installed in the /Applications directory and have a name matching Xcode*.app. Or be selected using xcode-select.
It's also possible to use /Library/Developer/CommandLineTools if those match the listed requirements.

More information and installation instructions can be found here:
https://developer.apple.com/support/xcode/

Specific Xcode versions can be downloaded here:
https://developer.apple.com/download/more/

Unable to detect any compatible iPhoneOS SDK!

錯誤訊息 - 詳細內容
找不到 bee_backend chmod: /Users/vaunicacalji/Desktop/DinoKite/Il2CppOutputProject/IL2CPP/build/deploy_x86_64/bee_backend/mac-x86_64/bee_backend: No such file or directory
➡ 問題:手動檢查時,bee_backend 確實存在,且可以執行,但 Build 時仍然報錯找不到。

IL2CPP 錯誤 Build failed with 0 successful nodes and 0 failed ones
Error: Internal build system error. BuildProgram exited with code 1.

Xcode 無法被 Unity 偵測 Unable to detect any compatible iPhoneOS SDK!
➡ 問題:但 xcode-select -p 確認 Xcode 安裝於 /Applications/Xcode.app/Contents/Developer,並且 xcodebuild -showsdks 列出了可用的 iOS SDK (18.2)。

Xcode 版本確認 xcodebuild -version 顯示:
Xcode 16.2 (Build version 16C5032a)
可用的 SDK xcodebuild -showsdks 顯示:
iOS 18.2 -sdk iphoneos18.2 ✅

環境資訊
macOS 版本:Sonoma 14.5

Mac 型號:MacBook Air (Retina, 13 英寸, 2018 年)

處理器:1.6 GHz 雙核心 Intel Core i5

記憶體:8GB 2133 MHz LPDDR3

顯示卡:Intel UHD Graphics 617 1536MB

Unity 版本:2022.2.21f1

已安裝的 Unity 模組:

✅ iOS Build Support
✅ Mac Build Support (IL2CPP)
✅ IL2CPP
目前狀況
✅ Xcode 已正確安裝,xcode-select -p 顯示正確路徑
✅ xcodebuild -showsdks 顯示可用的 iOS SDK (iOS 18.2)
✅ bee_backend 在手動檢查時存在且可執行
❌ 但 Build iOS 專案時仍然報錯 Unable to detect any compatible iPhoneOS SDK!
❌ 導致無法成功 Build iOS 專案

請問如何解決?

附上xcode中的build setting
ALWAYS_SEARCH_USER_PATHS = NO
ARCHS = arm64
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
CLANG_CXX_LANGUAGE_STANDARD = c++0x
CLANG_CXX_LIBRARY = libc++
CLANG_ENABLE_OBJC_ARC = YES
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution
CODE_SIGN_IDENTITY[config=Debug] = Apple Development
CODE_SIGN_IDENTITY[config=Release] = Apple Distribution
CODE_SIGN_STYLE = Manual
DEVELOPMENT_TEAM[sdk=iphoneos*] = 4429TL28T7
IPHONEOS_DEPLOYMENT_TARGET = 15.6
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
PRODUCT_BUNDLE_IDENTIFIER = com.torihiplay.DinoKite
PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*] = DinoKite.
SDKROOT = iphoneos
SUPPORTED_PLATFORMS = iphoneos
TARGETED_DEVICE_FAMILY = 1,2
UNITY_RUNTIME_VERSION = 2022.2.21f1
UNITY_SCRIPTING_BACKEND = il2cpp

*要做正式發行版的-謝謝大家

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-02-11 02:19
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在 Unity 中使用 IL2CPP 进行 iOS 项目构建时遇到的“Command PhaseScriptExecution failed with a nonzero exit code”错误可能由多种因素导致。针对这个问题及相关子问题,将从以下几个方面进行深入分析和解决:

    问题分析

    1. IL2CPP 代码构建工具无法找到:
      • 错误信息表示 IL2CPP C++ 代码构建器无法找到适当的工具链。这个问题通常与 Xcode 的安装、SDK 的配置或环境路径有关。
    2. 无法检测到可用的 iPhoneOS SDK:
      • 尽管 Xcode 安装正确,Unity 可能仍无法识别其 SDK,原因可能包括版本不兼容或环境变量配置错误。

    解决方案步骤

    1. 检查 Xcode 的安装和配置:
      • 确保 Xcode 安装在 /Applications 目录下,并且应用名称完全匹配Xcode.app
      • 使用以下命令确认 xcode-select 指向的路径是否正确:
        xcode-select -p
        
    2. 更新和确认 Command Line Tools:
      • 确保 Xcode Command Line Tools 已安装和更新。可以通过 Xcode 或运行以下命令安装:
        xcode-select --install
        
    3. 使用最新版的 SDK 和工具链:
      • 检查 Unity 是否更新到支持当前 Xcode 版本的最新版本。报告中显示您使用的是 Unity 2022.2.21f1,如果可能的话,考虑升级到最新版本的 Unity。
    4. 手动选择 SDK:
      • 如果 Unity 自动检测不到 SDK,可以手动设置使用的 SDK。打开 Unity 项目,进入 Edit -> Project Settings -> Player,在 iOS 设置中,检查 SDK 版本设置。
    5. 检查并修复路径问题:
      • 执行以下命令以确保路径正确,并删除不必要的临时文件:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
        
    6. 权限设置:
      • 确保 Unity 和 Xcode 拥有足够的权限执行构建操作。可以尝试在终端中给予额外权限:
        sudo chmod -R 755 /Users/vaunicacalji/Desktop/DinoKite/Il2CppOutputProject/
        

    示例代码(可选)

    对于 Unity中构建过程中的终端命令,可以在终端中使用以下代码测试和配置:

    # 列出当前的SDK
    xcodebuild -showsdks
    # 确保 Command Line Tools 安装
    xcode-select --install
    # 设置 Xcode 工具路径
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    # 清理 Unity 临时文件
    rm -rf ~/Library/Unity/cache
    # 再次尝试构建项目
    

    结论

    在解决“Unable to detect any compatible iPhoneOS SDK!”的错误时,确保 Xcode 正确配置并能被 Unity 识别是非常重要的。通过一系列逐步检查与设置,能够有效解决此类问题。如果仍然无法解决,考虑访问 Unity 和 Xcode 的官方支持文档,或在相关技术论坛中寻求社区的帮助。

    评论

报告相同问题?

问题事件

  • 修改了问题 2月11日
  • 创建了问题 2月11日