我正在尝试创建一个Xcode插件,该插件应该读取在Xcode中打开的项目中包含的所有文件,并进一步处理文件名(提取图像名称)。 问题是如何获取在Xcode中打开的项目的主包的目录/路径。获取在Xcode插件中打开的当前项目的路径
谢谢。
我正在尝试创建一个Xcode插件,该插件应该读取在Xcode中打开的项目中包含的所有文件,并进一步处理文件名(提取图像名称)。 问题是如何获取在Xcode中打开的项目的主包的目录/路径。获取在Xcode插件中打开的当前项目的路径
谢谢。
见Apple
Sandboxing
指南:https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxDesignGuide.pdf
如果你想获得你的bundle
目录:
NSString* bundle = [[NSBundle mainBundle] bundlePath];
对不起,这不是我的意思。当你在使用插件时,你写的代码将返回Xcode的bundle路径。那是因为你正在使用Xcode本身(请查看[link](http://www.blackdogfoundry.com/blog/creating-an-xcode4-plugin/))。所以我想知道的是如何获得Xcode打开的项目的路径。 –
。这样你可以找到从插件当前工程路径
NSArray *workspaceWindowControllers = [NSClassFromString(@"IDEWorkspaceWindowController") valueForKey:@"workspaceWindowControllers"];
id workSpace;
for (id controller in workspaceWindowControllers) {
if ([[controller valueForKey:@"window"] isEqual:[NSApp keyWindow]]) {
workSpace = [controller valueForKey:@"_workspace"];
}
}
NSString *workspacePath = [[workSpace valueForKey:@"representingFilePath"] valueForKey:@"_pathString"];
这个工程!谢谢! – Eric
+1000。不要使用bundlePath或当前工作目录,那些不起作用。 – nflacco
@Sachin你是如何知道这些方法的? – onmyway133
我我也有同样的问题..你有没有发现? – SachinVsSachin
@Sachin No.但是检查这个http://www.blackdogfoundry.com/blog/common-xcode4-plugin-techniques/ –