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

Swift调用MusicCatalogSearchRequest抛出.developerTokenRequestFailed错误求助

排查MusicKit .developerTokenRequestFailed错误的思路

问题重现

调用MusicCatalogSearchRequest时抛出.developerTokenRequestFailed错误,相关代码如下:

Task {
     let status = await MusicAuthorization.request()
     if status != .authorized {
          return
     }
                                    
     do {
          let req = MusicCatalogSearchRequest(term: "weeknd", types: [Album.self, Song.self])
          let res = try await req.response()
          print("Res:", res)
     }
     catch {
          let nsError = error as NSError
          print(error)
          print("Error Description:", nsError.localizedDescription)
     }
}

核心排查步骤

  • 确认开发者Token配置
    音乐目录(MusicCatalog)的访问必须依赖有效的开发者Token,这是最常见的遗漏点:

    1. 登录Apple Developer后台,生成符合要求的开发者Token:使用ES256算法签名,audience设为https://music.apple.com,有效期不超过180天。
    2. 在代码中主动设置Token:
      do {
          try MusicAuthorization.setDeveloperToken("你的有效开发者Token")
      } catch {
          print("设置开发者Token失败:", error)
      }
      
    3. 生产环境禁止硬编码Token,建议通过后端接口动态获取,避免泄露。
  • 检查App ID与权限配置

    • 登录Apple Developer后台,确保目标App ID已开启Apple Music服务。
    • 确认测试使用的Provisioning Profile包含该App ID,且已正确安装到测试设备/模拟器。
  • 验证用户与环境

    • 测试设备/模拟器需登录有效的Apple ID,且该ID已开通Apple Music服务(试用版也可)。
    • 确保设备网络正常,能访问Apple Music官方服务,无代理或防火墙拦截。
  • 增强错误日志排查
    修改错误捕获逻辑,获取更详细的底层错误信息:

    catch let musicError as MusicKit.Error {
        switch musicError {
        case .developerTokenRequestFailed(let underlyingError):
            print("开发者Token请求失败,底层错误:", underlyingError ?? "无额外信息")
        case .unauthorized(let message):
            print("授权失败:", message ?? "无描述")
        default:
            print("其他MusicKit错误:", musicError)
        }
    } catch {
        print("通用错误:", error.localizedDescription)
    }
    

关键提示

用户授权(MusicAuthorization.request())仅用于访问用户个人的音乐库数据,音乐目录的搜索/访问必须单独配置开发者Token,这是很多开发者容易混淆的点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:18:26