所以我有一段.Net代码可以触发Appium,这是一个在Mac OS上运行的NodeJS应用程序。它曾经在Yosemite上工作,但在XCode和El Capitan更新后停止工作。我正在尝试运行以下命令作为代码的一部分:
ssh.RunCommand("/usr/local/bin/forever start /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js --address 0.0.0.0 --port 4723 --log-level debug --device-name \"iPhone 6\" --platform-name iOS --platform-version \"8.4\" --app \"/Applications/my.app\" --browser-name iOS -l --log /Library/Logs/Appium/current.log");
我在Visual Studio中获得“env:node:No such file or directory”
System Policy: deny file-write-data /usr/bin/env
在system.log上 我猜OS X不允许我再次访问/ usr / bin / env,有没有办法绕过它? 干杯!
答案 0 :(得分:0)
这确实是由El Capitan的系统完整性保护(SIP)造成的,但另一个答案是错误的,因为他们声称/usr/local
仍然可写或者您可以重新获得永久访问权限
每次安装新程序时,这都会导致homebrew
安装完全混淆,我每周至少需要chown -R username /usr/local
次。 SIP有一些不同的命令行参数,可以完全禁用它(我肯定会考虑这样做),或者只禁用它的一部分。
请注意,禁用/启用/修改系统完整性保护必须在单用户模式下完成,方法是通过按住Cmd+R
重启进入恢复模式,然后启动根终端并执行{{1} }命令,它接受多个参数,即csrutil
和disable
,但也包含仅部分禁用特定事物的SIP的参数(enable
对话框中根本没有说明)。您还需要重新启动才能使设置生效。