Apple TV 16.4模拟器运行应用时出现libquic.dylib加载失败错误
应用构建成功后,在Apple TV 16.4模拟器上运行时出现以下错误:
nw_protocol_get_quic_image_block_invoke dlopen libquic失败: dlopen(/usr/lib/libquic.dylib, 0x0005): 尝试路径:
'/Users/cmrah/Projects/nova/packages/tv/ios/DerivedData/tf1/Build/Products/Debug-appletvsimulator/libquic.dylib'(文件不存在),
'/Library/Developer/CoreSimulator/Volumes/tvOS_20L494/Library/Developer/CoreSimulator/Profiles/Runtimes/tvOS 16.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection/libquic.dylib'(文件不存在),
'/Library/Developer/CoreSimulator/Volumes/tvOS_20L494/Library/Developer/CoreSimulator/Profiles/Runtimes/tvOS 16.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libquic.dylib'(文件不存在),
'/usr/lib/libquic.dylib'(文件不存在,不在dyld缓存中)
以下是几个可行的解决方向:
匹配Xcode与模拟器版本
tvOS 16.4模拟器需要对应版本的Xcode支持(比如Xcode 14.3),如果当前Xcode版本不兼容,会出现这类系统库缺失问题。升级/降级Xcode到适配版本,重新下载安装tvOS 16.4模拟器后再尝试运行。彻底清理缓存并重建项目
- 关闭Xcode,手动删除项目的DerivedData文件夹(路径为错误信息中的
/Users/cmrah/Projects/nova/packages/tv/ios/DerivedData/tf1) - 若使用CocoaPods,在终端进入项目根目录执行
pod deintegrate && pod install - 打开Xcode,执行
Product > Clean Build Folder(快捷键Cmd+Shift+K),之后重新构建运行。
- 关闭Xcode,手动删除项目的DerivedData文件夹(路径为错误信息中的
临时禁用QUIC协议(仅当应用不依赖QUIC时)
在App启动入口(如AppDelegate或SceneDelegate)添加代码禁用QUIC,绕开库加载失败问题:// Objective-C #include <nw_protocol_options.h> nw_protocol_options_set_quic_disabled(nw_protocol_options_create(NW_PROTOCOL_QUIC), true);Swift版本:
// Swift import Network let quicOptions = NWProtocolQUIC.Options() quicOptions.isDisabled = true重置模拟器环境
打开Apple TV模拟器,选择Device > Erase All Content and Settings,重置完成后重新安装运行应用,排除模拟器环境文件损坏的可能。
内容的提问来源于stack exchange,提问作者chourouk1991

