1

我正在编写一个从 Xcode 路径运行的工具。该工具通过运行 /usr/bin/xcode-select 获取 Xcode 的位置,但我想重新制作它,以便它直接从磁盘读取 Xcode 位置,而不是运行 xcode-select。我尝试调试 xcode-select (这是 xcrun 的符号链接),但没有设法找到它如何存储/读取 Xcode 的位置(它是存储在环境还是文件中?)。如果您知道如何在不运行 xcode-select(和 xcrun)的情况下获取 Xcode 的位置,请帮忙!提前致谢!

4

3 回答 3

2

使用 NSWorkspace,您可以执行以下操作:

[NSWorkspace sharedWorkspace]fullPathForApplication:@"Xcode"];

/Applications/Xcode.app当它安装在默认位置时返回。

// …or, as I have seen in the documentation, there's also
- (NSURL *)URLForApplicationWithBundleIdentifier:(NSString *)bundleIdentifier
// which returns the URL for the application with the specified identifier.
于 2013-01-30T22:29:52.487 回答
2

使用dtruss命令打印 xcode-select 的所有打开的系统调用。

dtruss -f -t open xcode-select -print-path

发现它试图读取 /usr/share/xcode-select/xcode_dir_path 并从那里获取 Xcode 位置。如果不存在,则采用默认的 Xcode 位置,即 /Applications/Xcode.app/。

于 2013-01-31T11:39:43.623 回答
2

从 Xcode 6 开始,该位置是一个符号链接,位于/var/db/xcode_select_link. 您可以使用命令将链接的目标输出到终端readlink /var/db/xcode_select_link。如果没有链接(例如,您运行xcode-select --reset),则使用默认的 xcode 安装。

于 2015-02-16T01:00:07.013 回答