在Xcode中使用SRCROOT

时间:2014-01-06 06:59:34

标签: objective-c xcode

我正在尝试在我的项目中使用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);
..

1 个答案:

答案 0 :(得分:3)

$ SRCROOT对于运行时环境毫无意义。

如果要以bundle的形式访问文档,请确保将my_script.rb添加到“Copy Bundle Resources”中,然后尝试:

NSString * path = [[NSBundle mainBundle] bundlePath] ;
path = [path stringByAppendingPathComponent:@"my_script.rb"] ;

enter image description here

$ SRCROOT是定义目标的项目文件(* .xcodeproj)的路径。链接here enter image description here

此处的捆绑包术语表示应用程序捆绑包,应用程序捆绑包存储应用程序成功运行所需的所有内容。链接here