Using a Custom Toolchain in Xcode

 原创    2021-06-17

特殊情况下需要使用自定义的Toolchain,Xcode便捷支持选择不同的Toolchain。自定义的Toolchain在macOS和Xcode升级时可能需要做维护。

Xcode会读取两个目录的Toolchain:

Xcode.app/Contents/Developer/Toolchains/
~/Library/Developer/Toolchains/

上面目录仅作用于当前路径的Xcode,下面目录作用于所有安装的Xcode。

看川试验时,最新的Xcode为12.5,默认已经不再显示Toolchain的修改入口。

当向上述路径新增一个自定义的Toolchain时,Toolchain的入口才会显示。可以在两个地方修改Xcode默认使用的Toolchain:

  • Xcode->Preferences->Components->Toolchains
  • Xcode主菜单->Toolchains

可以以XcodeDefault.xctoolchain为基础修改一个自定义的Toolchain。新Toolchain的plist文件包含以下字段:

  • CFBundleIdentifier:Toolchain包名,唯一标识;
  • CompatibilityVersion:Xcode适配版本;
  • DisplayName:显示的Toolchain名称(可选)
  • ShortDisplayName(可选)

其中CompatibilityVersion在试验时发现必须填写2,否则会提示:

The toolchain is not compatible with this version of Xcode.

没有搜索到更多的关于CompatibilityVersion的信息,可以参考Support for generating Xcode 8 compatible toolchains 中的描述:

Xcode 8 requires CompatibilityVersion 2
Xcode 7.3 (the first version supporting external toolchains) requires
CompatibilityVersion 1

使用自定义的Toolchain,在macOS或XCode版本升级时,有可能会出现Toolchain中自定义库文件签名失效的问题,可以参考解决办法:xcodebuild:code signature invalid

相关文章:

Xcode Build Settings
解决 Xcode 下载 iOS Simulator 频繁失败的问题
xcodebuild:code signature invalid
xcodebuild build failed:Use the $(inherited) flag
Xcode 10/iOS 12适配

发表留言

您的电子邮箱地址不会被公开,必填项已用*标注。发布的留言可能不会立即公开展示,请耐心等待审核通过。