You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMM项目iOS端在Xcode运行报错:Command PhaseScriptExecution失败

解决Xcode运行KMM iOS App时的Java Runtime找不到问题

问题详情

在Xcode中运行KMM项目的iosApp模块时,触发以下错误:

Command PhaseScriptExecution failed with a nonzero exit code

具体报错日志:

export variant\=normal /bin/sh -c /Users/Library/Developer/Xcode/DerivedData/iosApp-ftrrlcszyheexqhbvoqhhryktogx/Build/Intermediates.noindex/Previews/iosApp/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Script-7555FFB5242A651A00829871.sh
The operation couldn't be completed. Unable to locate a Java Runtime.Command PhaseScriptExecution failed with a nonzero exit code 

已确认Java已安装,Android Studio中运行Android端正常,尝试过官方相关方案但未解决问题。

可行解决方案

1. 直接在Xcode脚本中指定Java路径

Xcode的Shell环境可能未加载正确的Java环境变量,可手动在出错脚本中指定:

  • 打开终端,执行命令获取Java安装路径:
    /usr/libexec/java_home
    
  • 复制输出的路径(示例:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home)
  • 打开Xcode,进入项目Build Phases,找到报错的Script(对应Script-7555FFB5242A651A00829871.sh),在脚本开头添加:
    export JAVA_HOME=/你的Java安装路径
    

2. 全局配置Java环境变量供Xcode读取

如果不想逐个修改脚本,可全局配置环境变量:

  • 编辑~/.zshrc或~/.bash_profile(根据你使用的Shell),添加:
    export JAVA_HOME=$(/usr/libexec/java_home)
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 执行source ~/.zshrc(或对应配置文件)使配置生效
  • 重启Xcode后重新构建项目

3. 让Xcode使用正确的Shell环境

Xcode默认使用/bin/sh,可能不读取用户的Shell配置,可强制切换为常用Shell:

  • 打开Xcode顶部菜单Xcode > Settings > Locations,确认Command Line Tools选择了当前使用的Xcode版本
  • 终端执行命令切换默认Shell(以zsh为例):
    chsh -s /bin/zsh
    
  • 重启Mac后再打开Xcode运行项目

4. 清理Xcode缓存后重新构建

  • 执行Xcode菜单File > Clean Build Folder
  • 终端执行命令删除DerivedData目录:
    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  • 重新构建项目

内容的提问来源于stack exchange,提问作者Jitendra Prajapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:46:01