You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI调用AVAudioSession.sharedInstance()出现控制台错误,如何阻止打印?

解决AVAudioSession控制台打印插件注册错误的方法

在SwiftUI中调用AVAudioSession.sharedInstance()时出现的[plugin] AddInstanceForFactory: No factory registered for id <CFUUID ...>错误,本质是iOS模拟器环境下CoreAudio部分插件未注册导致的,真机通常不会出现。以下是几种解决方式:

1. 提前配置音频会话类别

在首次获取AVAudioSession实例前,先明确设置会话的类别和模式,让系统知晓音频用途,避免加载无关插件。示例代码:

import AVFoundation

// 在App启动或使用音频前执行
func configureAudioSession() {
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch {
        print("音频会话配置失败: \(error.localizedDescription)")
    }
}

根据实际音频场景选择类别,比如录音用.record,同时播放和录音用.playAndRecord等。

2. 过滤Xcode控制台日志

如果不想修改代码,直接在Xcode控制台屏蔽该错误:

  • 在控制台顶部的搜索框输入:NOT [plugin] AddInstanceForFactory: No factory registered for id <CFUUID
  • 或者点击控制台左侧的「Filter」按钮,创建自定义过滤规则,排除包含该错误字符串的日志条目。

3. 模拟器环境下补充Info.plist配置

如果应用不需要麦克风权限,仍可在Info.plist中添加NSMicrophoneUsageDescription键(值可以为空字符串),部分场景下能阻止系统尝试加载麦克风相关插件触发错误。


内容的提问来源于stack exchange,提问作者wristbands

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:45:29