我正在嘗試創建一個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/ –