是Xcode';s SDKs/MacOSX.sdk符号链接有文档记录的功能
在构建脚本中,我使用是Xcode';s SDKs/MacOSX.sdk符号链接有文档记录的功能,xcode,macos,Xcode,Macos,在构建脚本中,我使用/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk查找最新的MacOSX sdk。MacOSX.sdk似乎包含MacOSX.sdk的最新版本,而MacOSX#.#.sdk是指向MacOSX.sdk的符号链接(我知道它似乎是向后的) 示例ls-al Oct 21 10:43 MacOSX.sdk Nov 9 14:57 MacOSX11.0
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
查找最新的MacOSX sdk。MacOSX.sdk似乎包含MacOSX.sdk的最新版本,而MacOSX#.#.sdk是指向MacOSX.sdk的符号链接(我知道它似乎是向后的)
示例ls-al
Oct 21 10:43 MacOSX.sdk
Nov 9 14:57 MacOSX11.0.sdk -> MacOSX.sdk
我的问题是,这个特性在任何地方都有文档记录吗?我想有一个保证,这将继续工作,我想知道有多远的功能存在
Xcode的SDKs/MacOSX.sdk
Symlink是一个文档化的特性吗
从技术上讲,它是一个MacOSX.sdk
symlink,指向新的(未记录的)标准,即简单的MacOSX.sdk
符号链接本身似乎是一个相对较新的、与旧约定向后兼容的功能。本公约似乎只是事实上的,因此不是有文件记载的特征。从历史上看,在某些情况下,符号链接是偶数
@QuinceyMorris
来自developer.apple.com论坛:
“过去,Xcode附带了多个SDK版本,您可以使用所使用的Xcode版本附带的任何SDK。目前,Xcode只附带最新的SDK
您不再需要多个SDK来针对不同版本的macOS。相反,您可以在源代码中编写可用性测试,根据应用程序运行的macOS版本选择不同的代码路径。”
例如:
- 打开Xcode 2.3的
,没有MacOSX10.3.9.pkg
,而是MacOSX.sdk
MacOSX10.3.9.sdk
- 解包Xcode 4.0.2的
,没有MacOSX10.6.sdk
,而是MacOSX.sdk
MacOSX10.6.sdk
xcrun
的工具来定位此位置,例如:
xcrun --show-sdk-path
在较新的OSs上,通常会列出未版本的路径,例如:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
。。。或者,如果安装了多个SDK,则可以指定目标SDK:
xcrun --sdk macosx10.14 <command>
xcrun--sdk macosx10.14
请注意,由于XCode安装目标可能会有所不同(以及命名为XCode Beta.app
),因此强烈建议使用帮助工具查找此目录
但是,使用似乎是新的“标准”,并将完全避免使用版本化的SDK文件夹,前提是它可以满足您的需要。它在10.12中提供,因此可能至少在事实上(滚动到此答案的底部)…一些间接证据表明,它可能并不总是这样: