【发布时间】:2014-10-17 14:36:59
【问题描述】:
我在 Xcode 6 中有一个可以工作的 OS/X 应用程序。这个应用程序检查一些输入,然后执行一个 shell 脚本。 shell 脚本是捆绑包的一部分,即它在支持文件中作为“script.sh”。
每当我修改脚本时,我还必须通过终端 chmod +x 使其可执行以供 Xcode run 运行。
有没有办法保留“script.sh”可执行标志?
【问题讨论】:
我在 Xcode 6 中有一个可以工作的 OS/X 应用程序。这个应用程序检查一些输入,然后执行一个 shell 脚本。 shell 脚本是捆绑包的一部分,即它在支持文件中作为“script.sh”。
每当我修改脚本时,我还必须通过终端 chmod +x 使其可执行以供 Xcode run 运行。
有没有办法保留“script.sh”可执行标志?
【问题讨论】:
选项 1:在文件的源副本上设置 +x。当它被复制到您的应用程序包中时,它应该具有类似的权限。
chmod 755 ~/Project/script.sh
在此之后,我能够在 Xcode 中编辑脚本并且我的测试应用程序仍然可以正确运行它。
选项 2:通过 /bin/bash (或任何适合您的脚本的解释器)间接启动脚本,使 +x 变得不必要。例如
NSString *path = [[NSBundle mainBundle] pathForResource:@"script" ofType:@"sh"];
NSTask *task = [NSTask launchedTaskWithLaunchPath:@"/bin/bash" arguments:@[path]];
[task waitUntilExit];
【讨论】: