2014-01-10 34 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

相關問題