Kotlin多平台构建iosApp报PhaseScriptExecution非零退出码如何解决?
报错根本原因
你看到的PhaseScriptExecution相关的CocoaPods脚本执行失败是表层报错,触发根因为:Xcode构建iOS应用时会调用Gradle任务编译KMP的共享代码模块,此时Gradle运行使用的Java版本为1.8,而项目配置的Android Gradle插件要求Java 11及以上版本运行,校验不通过导致构建中断。
修复方案
可任选以下一种方式修复:
- 修改Android Studio Gradle运行JDK版本
打开Android Studio > Preferences(Mac系统)/ Settings(Windows系统)> Build, Execution, Deployment > Build Tools > Gradle,在当前项目的Gradle JDK选项中选择11或更高的兼容版本即可。 - 项目内指定Gradle JDK路径
在项目根目录的gradle.properties文件中添加如下配置,将路径替换为你本地JDK11+的安装路径:
上面的路径为Mac系统下Android Studio自带JDK的默认路径,可直接复制使用。org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home - 修改全局JAVA_HOME环境变量
Mac系统下编辑~/.zshrc(zsh终端)或~/.bash_profile(bash终端),添加如下配置后执行source 对应配置文件生效:
Windows系统下在系统环境变量设置中,将JAVA_HOME的值修改为JDK11+的安装路径即可。export JAVA_HOME=本地JDK11+安装路径
验证步骤
配置完成后,依次执行以下操作验证修复:
- 进入项目根目录执行
./gradlew clean清理旧构建缓存 - 进入iosApp目录执行
pod install更新CocoaPods配置 - 重新触发iOS模拟器的构建运行即可
内容的提问来源于stack exchange,提问作者Christopher Mathews
相关产品推荐
相关产品推荐

