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

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信任,避免使用自签名证书(发布模式下自签名证书默认不被信任)。
  • 调整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')
      
  • 验证网络权限与依赖配置

    • 确认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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:32:22