Swift 5.7报错:[plugin] AddInstanceForFactory无注册工厂,功能正常却报错求解
问题原因及解决办法
错误原因
这个[plugin] AddInstanceForFactory: No factory registered for id是AVFoundation框架内部的非关键性日志,和你的代码逻辑无关,也不会影响音频播放功能。它本质是系统尝试加载某些未注册的音频插件(比如第三方音频扩展)时,找不到对应工厂类导致的系统层面日志输出,不属于你的代码bug。
日志屏蔽方法(可选)
如果觉得该日志干扰调试,可通过以下方式屏蔽:
- 打开Xcode的
Edit Scheme→Run→Arguments→Environment Variables,添加OS_ACTIVITY_MODE变量,值设为disable。注意:这会屏蔽所有系统日志,调试完成后建议关闭。
代码健壮性优化(无关错误,但提升稳定性)
你的代码中存在两处强制解包(try!和url!),若音频文件缺失会直接崩溃,建议修改为安全的可选绑定:
func playSound() { guard let url = Bundle.main.url(forResource: "C", withExtension: "wav") else { print("音频文件不存在") return } do { player = try AVAudioPlayer(contentsOf: url) player.play() } catch { print("音频播放失败:\(error.localizedDescription)") } }
内容的提问来源于stack exchange,提问作者binev.dev
相关产品推荐
相关产品推荐

