我正在写一个工具,从Xcode路径运行clang。这个工具通过运行/usr/bin/xcode-select来获取Xcode的位置,但是我想重新创建它,这样它就可以直接从磁盘读取Xcode位置,而不是运行xcode-select。我尝试调试xcode-select(它是到xcrun的符号链接),但没有设法找到它如何存储/读取Xcode的位置(它存储在环境或文件?).如果你知道如何获得Xcode的位置不运行xcode-select(和xcrun),请帮助!提前感谢!
4dbbbstv1#
从Xcode 6开始,这个位置是/var/db/xcode_select_link的一个符号链接。你可以用readlink /var/db/xcode_select_link命令将链接的目标输出到你的终端。如果没有链接(例如,你运行xcode-select --reset),则使用默认的xcode安装。
/var/db/xcode_select_link
readlink /var/db/xcode_select_link
xcode-select --reset
h9vpoimq2#
使用NSWorkspace,您可以:
[NSWorkspace sharedWorkspace]fullPathForApplication:@"Xcode"];
当安装在默认位置时返回/Applications/Xcode.app。
/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.
13z8s7eq3#
使用dtruss命令打印xcode-select的所有打开的系统调用。
dtruss -f -t open xcode-select -print-path
它尝试读取/usr/share/xcode-select/xcode_dir_path并从那里获取Xcode位置,如果它不存在,它将使用默认的Xcode位置,即/Applications/Xcode.app/。
3条答案
按热度按时间4dbbbstv1#
从Xcode 6开始,这个位置是
/var/db/xcode_select_link
的一个符号链接。你可以用readlink /var/db/xcode_select_link
命令将链接的目标输出到你的终端。如果没有链接(例如,你运行xcode-select --reset
),则使用默认的xcode安装。h9vpoimq2#
使用NSWorkspace,您可以:
当安装在默认位置时返回
/Applications/Xcode.app
。13z8s7eq3#
使用dtruss命令打印xcode-select的所有打开的系统调用。
它尝试读取/usr/share/xcode-select/xcode_dir_path并从那里获取Xcode位置,如果它不存在,它将使用默认的Xcode位置,即/Applications/Xcode.app/。