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

Xcode编译Cordova项目报错sh: bad interpreter: Permission Denied求助

解决Catalina下Xcode编译Cordova项目报sh: bad interpreter: Permission denied的问题

针对你遇到的这个棘手问题,结合Catalina 10.15.6的系统特性,除了你已经尝试的操作,还有几个针对性的排查和解决方向:

1. 检查脚本的换行符格式

跨平台克隆的项目很容易出现shell脚本换行符变为Windows风格的CRLF,这会直接导致Mac的sh/bash解释器无法识别,触发bad interpreter错误:

  • 用终端查看脚本换行符类型:file path/to/your-script.sh,如果输出包含CRLF line terminators,就说明是这个问题。
  • 修复方法:
    • 用vim打开脚本,执行:set ff=unix后输入:wq保存退出;
    • 或者用命令批量处理:sed -i '' 's/\r$//' path/to/your-script.sh。

2. 重置Cordova的iOS平台文件

克隆项目的iOS平台目录可能残留原项目的权限或配置脏数据,完全重建平台文件大概率能解决这类奇怪的权限冲突:

  • 终端进入项目根目录,执行:
    cordova platform remove ios
    cordova platform add ios
    
  • 重新用Xcode打开生成的项目,再尝试编译。

3. 清理Xcode的Derived Data缓存

Xcode的构建缓存偶尔会出现权限紊乱,清理后能排除这类干扰:

  • 在Xcode中点击Product -> Clean Build Folder(快捷键Cmd+Shift+K);
  • 或者手动删除对应项目的缓存:打开~/Library/Developer/Xcode/DerivedData,找到你的项目文件夹删除,再重启Xcode编译。

4. 移除文件的Quarantine隔离属性

Catalina的安全机制会给克隆/下载的文件添加隔离标记,这可能间接影响脚本的执行权限:

  • 终端执行命令移除整个项目文件夹的隔离属性:
    xattr -rd com.apple.quarantine /path/to/your-project-folder
    
  • 之后重新给脚本添加执行权限chmod +x path/to/your-script.sh,再尝试编译。

5. 验证脚本的Shebang行

确保脚本第一行的解释器路径完全正确,比如:

#!/bin/sh

或者

#!/bin/bash

如果路径写错(比如误写为#!/usr/bin/sh),也会触发bad interpreter错误,修正后再测试。

如果以上方法都无效,可以尝试创建一个全新的Cordova项目,把你的代码文件复制进去再编译,彻底排除克隆项目的隐藏配置问题。

内容的提问来源于stack exchange,提问作者Jorge Lizaso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:12:47