Flutter iOS端自定义FCM通知音效失效问题排查求助
iOS端FCM自定义通知音效不生效的解决方案
以下是你遗漏的关键配置步骤,按优先级排查:
1. 确保音频文件被正确添加到Xcode项目
你仅将sound.aiff放在项目根目录,但iOS要求音频文件必须被纳入Xcode的资源管理中:
- 打开iOS原生项目(
ios/Runner.xcworkspace),将sound.aiff拖拽到项目导航栏的Runner目录下 - 勾选Copy items if needed,并确保在
Target Membership中勾选了你的主应用target
同时确认音频格式符合iOS要求:推荐使用.aiff/.wav/.caf格式,采样率44.1kHz、16位线性PCM。
2. 修正代码中的音效文件名(需带扩展名)
你的代码中多处只写了sound,但iOS需要完整的文件名(包含扩展名):
修正IOSNotificationDetails配置
iOS: const IOSNotificationDetails( presentAlert: true, presentBadge: true, presentSound: true, sound: 'sound.aiff', // 补充扩展名 ),
修正AppleNotification配置
apple: const AppleNotification( sound: AppleNotificationSound( name: 'sound.aiff', // 补充扩展名 volume: 1.0, ), ),
3. 后台推送的payload需指定音效
如果是FCM后台推送的通知(非前台通过flutter_local_notifications展示的),服务器端发送的payload必须包含sound字段:
{ "notification": { "title": "通知标题", "body": "通知内容", "sound": "sound.aiff" }, "to": "设备FCM Token" }
4. 验证系统权限与设置
- 确认用户已授予应用通知声音权限(可通过iOS系统设置→你的应用→通知→声音确认)
- 检查设备未处于静音模式,且媒体音量未调至最低
内容的提问来源于stack exchange,提问作者arab abdo
相关产品推荐
相关产品推荐

