Flutter Xcode 15 Error (Xcode): DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS
回答 6
浏览 9640
2023-09-19
今天将 Xcode 升级到版本 15 后,在构建 IOS 应用程序时收到以下错误:
Error (Xcode): DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead
就我而言,似乎是一些特定的依赖项导致了此问题:
- objectbox_flutter_libs:^2.2.1
- firebase_core:^2.16.0
我不知道如何解决这个问题,我将非常感谢任何建议!
谢谢!
@Kyle Venn Giga chad
- Preem Palver2 2023-09-20
@KyleVenn 你是一个有荣誉感和文化的人
- Andre Pena 2023-09-20
6 个回答
#1楼
已采纳
得票数 46
将此代码添加到您的 podfile 中
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
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
之后运行 pod update(运行 pod update 之前确保 iOS 文件夹是当前目录)。
pod update
解决方案 2:使用 flutter 构建 iOS 项目时出现问题
看看这个多味配置。
解决方案3: 如果您使用 inAppWebview 进行 flutter,则会出现如下错误:
Parse Issue (Xcode): Could not build module 'WebKit'
因此,您可以在 pubspec.yaml 文件中添加如下内容:
flutter_inappwebview:
git:
url: https://github.com/Estrelio/flutter_inappwebview.git
ref: fix-xcode-17
解决方案4(对于非flutter用户):
从脚本中删除以下行。
flutter_additional_ios_build_settings(target)
我尝试了@Kyle Venn 的解决方案,它确实有效。但是,需要注意的是,这只能用作临时解决方案,直到下一个 cocopods 更新发布为止。
- Preem Palver2 2023-09-20
我尝试了该解决方案,但在尝试运行应用程序时遇到了以下问题:Error (Xcode): 123 duplicate symbols Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation)
- Lukasz C. 2023-09-20
@PreemPalver2 不,我不能“简单地”删除 iOS 文件夹。我有五个大型应用程序需要支持,每个应用程序都有一个复杂且自定义的 Xcode 配置。我需要一周的时间才能重新创建这个。我经常看到这个“simply delete”的建议,因为人们认为 ios 文件夹中没有任何内容,而对于较大的应用程序来说,情况通常并非如此。我会看看设置旧链接器是否有帮助。
- Lukasz C. 2023-09-21
设置链接器与其他解决方案相结合已经奏效。 ;)
- Lukasz C. 2023-09-21
顺便说一句,如果你没有flutter,请评论“flutter”行
- pw2 2023-09-22
#2楼
得票数 5
对我有用的解决方案:Xcode 15 with Flutter
post_install do |installer|
installer.aggregate_targets.each do |target|
target.xcconfigs.each do |variant, xcconfig|
xcconfig_path = target.client_root + target.xcconfig_relative_path(variant)
IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR"))
end
end
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
if config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference
xcconfig_path = config.base_configuration_reference.real_path
IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR"))
end
end
end
end
Build error with this change: 'undefined method xcconfigs' for #<Xcodeproj::Project::Object::PBXNativeTarget:0x000000014aa715c0>
- Jimmy_m 2023-09-21
#3楼
得票数 3
试试这个,它在react-native中有效:
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
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
#4楼
得票数 3
尝试这个,
find . -name "*.xcconfig" -type f -exec grep -l 'DT_TOOLCHAIN_DIR' {} \; \
| while IFS= read -r file; do sed -i '' 's/DT_TOOLCHAIN_DIR/TOOLCHAIN_DIR/g' "$file"; done
就我而言,我在项目文件夹中运行它。
来源:https://www.mongodb.com /community/forums/t/xcode-15-cocoapods/245603
完美的兄弟..完美..
- Ucdemir 2023-09-22
#5楼
得票数 3
即使使用版本 1.13.0,我也会收到以下错误:Could not build module 'WebKit' /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.0.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebsiteDataStore.h:120:47 type argument 'nw_proxy_config_t' (aka 'struct nw_proxy_config *') is neither an Objective-C object nor a block type
- Tito Rezende 2023-09-23
#6楼
得票数 1
我解决了这个错误。只需将以下代码添加到Pod文件中
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|
flutter_additional_ios_build_settings(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
注意:先删除Pod文件夹,然后使用重构pod文件后进入ios
目录并尝试运行pod install
上面提供的代码。