iOS发布模式下just_audio报PlatformException(-1004)连接失败求助
解决just_audio iOS发布模式下PlatformException(-1004)问题
针对你遇到的iOS发布模式下无法连接服务器的问题,可按以下方向排查解决:
检查ATS配置
iOS发布模式下ATS(App Transport Security)限制更严格:- 优先确保音频URL使用HTTPS协议,苹果现在默认禁用HTTP请求,若必须用HTTP,需在
Info.plist中添加例外配置:
注意:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>NSAllowsArbitraryLoads在App Store审核时可能需要说明原因,建议尽量迁移到HTTPS。 - 若使用HTTPS,确认服务器证书有效且被iOS信任,避免使用自签名证书(发布模式下自签名证书默认不被信任)。
- 优先确保音频URL使用HTTPS协议,苹果现在默认禁用HTTP请求,若必须用HTTP,需在
调整Cookie传递方式
iOS端just_audio对Cookie的处理可能和Android存在差异:- 检查Cookie字符串格式是否标准,确保
"token=$token"没有多余空格或特殊字符; - 尝试改用
Authorization头传递token(需后端支持该方式),替换原Cookie头:headers: {"Authorization": "Bearer $token"} - 也可尝试将token直接拼接在URL参数中(需后端支持):
Uri.parse('${mediaItem.extras!['url']}?token=$token')
- 检查Cookie字符串格式是否标准,确保
验证网络权限与依赖配置
- 确认
Info.plist中已添加网络权限描述:<key>NSAppNetworkUsageDescription</key> <string>需要访问网络播放音频</string> - 更新just_audio到最新版本,清理iOS端Pod缓存后重新安装:
cd ios pod deintegrate pod install
- 确认
排查服务器端限制
确认后端服务器没有针对iOS端的User-Agent做访问限制,可尝试在headers中添加模拟Android的User-Agent:headers: { "Cookie": "token=$token", "User-Agent": "Mozilla/5.0 (Linux; Android 10; SM-G973F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 Mobile Safari/537.36" }
内容的提问来源于stack exchange,提问作者Ajay Gajera
相关产品推荐
相关产品推荐

