In Xcode 15 Apple changed the variable which points to the default toolchain location to $TOOLCHAIN_DIR
from $DT_TOOLCHAIN_DIR
. If some project/target used $DT_TOOLCHAIN_DIR
then it need to be replace by $TOOLCHAIN_DIR
.
1. Find DT_TOOLCHAIN_DIR Reference
To find out where in your project you are using this, you can search for DT_TOOLCHAIN_DIR
in your project to find out where in your project you are using DT_TOOLCHAIN_DIR
.
2. Fix for CocoaPods
If you are seeing only CocoaPods (pod
) project is using $DT_TOOLCHAIN_DIR
then you can add the following script in your Podfile to automatically update $DT_TOOLCHAIN_DIR
to $TOOLCHAIN_DIR
. This will only execute on Xcode 15 or later. It will not impact other developers who is using Xcode 14.
post_install do |installer|
xcode_base_version = `xcodebuild -version | grep 'Xcode' | awk '{print $2}' | cut -d . -f 1`
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# For xcode 15+ only
if config.base_configuration_reference && Integer(xcode_base_version) >= 15
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
end
end
end
end
3. Fix for your project
If you see some references of DT_TOOLCHAIN_DIR
in your main project/taget, then you need to update that manually.