我喜欢在我的OS X项目中使用Chromium浏览器而不是WebKit浏览器。
一旦打开它并想要构建它。它首先给我带来问题,因为虚拟bool Execute需要被覆盖。当我解决了这个错误时,它会进一步发展,但会崩溃:
cefsimple /bin/sh: tools/make_more_helpers.sh: /bin/bash: bad interpreter: Operation not permitted
make: *** [cefsimple_buildpart_2] Error 126
Command /bin/sh failed with exit code 2
有谁能解释我做错了什么?
答案 0 :(得分:2)
在OS X版本10.7.4及更高版本中,扩展属性被添加到可执行文件(包括shell脚本)中,并由您为帐户定义的安全设置进行处理。例如,检查一个构建脚本上的xattr
可能与此类似:
$ ls -l@ make_more_helpers.sh
-rwxr-xr-x@ 1 Hellman staff 3564 Sep 2 07:02 make_more_helpers.sh
com.apple.quarantine 23
当Xcode尝试执行脚本时(同样取决于您的安全设置),它将查看扩展属性并确定是否允许它执行。如果它发现脚本的创建者未被批准,您将收到错误,例如:
make_more_helpers.sh: /bin/bash: bad interpreter: Operation not permitted
幸运的是,这是一个简单的解决办法,有很多方法可以解决这个问题。一种方法是将您使用Xcode构建的项目的一部分脚本关联起来。您还可以在允许运行脚本并重新保存脚本的编辑器中打开脚本,或者只是递归扫描构建目录以查找具有隔离属性的文件并删除该属性:
xattr -rd com.apple.quarantine /path/to/build
执行此操作后,您应该注意在您的脚本上执行另一个ls -l@
,@
遵循权限,com.apple.quarantine
应被删除。现在,当您尝试构建项目时,应该允许脚本执行并成功。