我正在尝试在我的项目中使用SRCROOT
路径,如下所示:
// Create NSTask to interact with console
NSTask *task;
task = [[NSTask alloc] init];
// Set path to script
NSString *launch_path = @"$SRCROOT/Scripts/my_script.rb";
NSLog(launch_path);
[task setLaunchPath:launch_path];
我最终(在日志中):
$SRCROOT/Scripts/my_script.rb
我想在项目目录中找到一条路径,如下所示:
/Application/Scripts/my_script.rb
任何人都可以帮助我理解我做错了什么吗?提前谢谢。
此外,我尝试了以下内容但没有成功:
..
// Set path to script
NSString *launch_path = [NSString stringWithFormat:@"%@/Scripts/auto_checkin.rb", "$SRCROOT"];
NSLog(launch_path);
..
答案 0 :(得分:3)
$ SRCROOT对于运行时环境毫无意义。
如果要以bundle的形式访问文档,请确保将my_script.rb添加到“Copy Bundle Resources”中,然后尝试:
NSString * path = [[NSBundle mainBundle] bundlePath] ;
path = [path stringByAppendingPathComponent:@"my_script.rb"] ;
$ SRCROOT是定义目标的项目文件(* .xcodeproj)的路径。链接here
此处的捆绑包术语表示应用程序捆绑包,应用程序捆绑包存储应用程序成功运行所需的所有内容。链接here