错误:DT_TOOLCHAIN_DIR 不能用于评估 LIBRARY_SEARCH_PATHS,请改用 TOOLCHAIN_DIR

发布: (2025年12月12日 GMT+8 03:40)
1 min read
原文: Dev.to

Source: Dev.to

问题

从 Xcode 15 开始,toolchain 不再从变量 $DT_TOOLCHAIN_DIR 中获取,而是使用 $TOOLCHAIN_DIR
在引入 CocoaPods 依赖(例如 Firebase)时,可能会出现以下错误:

error: DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead (in target 'Firebase' from project 'Pods')

解决方案

  1. 更新产生错误的依赖(例如 Firebase)。
  2. 如果无法更新,搜索 pod 文件中的所有 $DT_TOOLCHAIN_DIR 出现位置,并将其替换为 $TOOLCHAIN_DIR

CocoaPods 后安装脚本

如果只有单个依赖导致错误,可以在 Podfile 中添加以下 post_install 块:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # 更新 LIBRARY_SEARCH_PATHS
      ['Firebase.release.xcconfig', 'FirebaseAnalytics.release.xcconfig'].each do |file_name|
        Dir.glob("Pods/**/#{file_name}", File::FNM_CASEFOLD).each do |xcconfig_path|
          text = File.read(xcconfig_path)
          new_contents = text.gsub('DT_TOOLCHAIN_DIR', 'TOOLCHAIN_DIR')
          File.open(xcconfig_path, "w") { |file| file.puts new_contents }
        end
      end
    end
  end
end
Back to Blog

相关文章

阅读更多 »

Swift #11:守卫语句

Guard 语句 guard 包含一个条件,随后是 else 和一个 guard 块。如果条件为 false,则执行 guard 块并…

SwiftUI 中的模块化特性架构

🧩 1. 什么是 Feature Module?Feature Module 是一个自包含的单元,代表应用中的一个功能块:Home、Profile、Settings、Feed、Auth 等。