2014-01-10 36 views
7

我正在尝试创建一个Xcode插件,该插件应该读取在Xcode中打开的项目中包含的所有文件,并进一步处理文件名(提取图像名称)。 问题是如何获取在Xcode中打开的项目的主包的目录/路径。获取在Xcode插件中打开的当前项目的路径

谢谢。

+0

我我也有同样的问题..你有没有发现? – SachinVsSachin

+0

@Sachin No.但是检查这个http://www.blackdogfoundry.com/blog/common-xcode4-plugin-techniques/ –

回答

-1

AppleSandboxing指南:https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxDesignGuide.pdf

如果你想获得你的bundle目录:

NSString* bundle = [[NSBundle mainBundle] bundlePath]; 
+1

对不起,这不是我的意思。当你在使用插件时,你写的代码将返回Xcode的bundle路径。那是因为你正在使用Xcode本身(请查看[link](http://www.blackdogfoundry.com/blog/creating-an-xcode4-plugin/))。所以我想知道的是如何获得Xcode打开的项目的路径。 –

11

。这样你可以找到从插件当前工程路径

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"]; 
+0

这个工程!谢谢! – Eric

+0

+1000。不要使用bundlePath或当前工作目录,那些不起作用。 – nflacco

+0

@Sachin你是如何知道这些方法的? – onmyway133

相关问题