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

iOS中使用Model IO转USDZ为STL时出现‘Client not entitled’错误

问题分析与解决方案

1. 核心代码错误:USDZ文件路径无效

你代码里的newUsdz变量直接使用相对路径"Room.usdz",但这个路径指向的是当前进程的工作目录,并非你之前创建的临时Export文件夹。Model I/O找不到正确的USDZ文件,进而触发了后续的权限关联错误。

修正后的代码

let destinationFolderURL = FileManager.default.temporaryDirectory.appending(path: "Export")
let destinationURL = destinationFolderURL.appending(path: "Room.usdz")
let capturedRoomURL = destinationFolderURL.appending(path: "Room.json")
// 改用正确的完整路径指向已生成的USDZ文件
let newUsdz = destinationURL 
let asset = MDLAsset(url: newUsdz)
let stl = destinationFolderURL.appending(path: "Room.stl")

do {
  try FileManager.default.createDirectory(at: destinationFolderURL, withIntermediateDirectories: true)
  // 先确认USDZ文件存在再执行导出
  guard FileManager.default.fileExists(atPath: newUsdz.path) else {
    print("USDZ文件不存在")
    return
  }
  try asset.export(to: stl)
} catch {
  print("Error = \(error)")
}

2. 权限问题排查(修正路径后仍报错时)

如果上述修正后还是出现Client not entitled错误,检查以下内容:

  • 开启App Sandbox权限:在Xcode的Signing & Capabilities中添加App Sandbox,并勾选User Selected File的读写权限(若需访问用户选择的文件)。
  • 线程安全检查:确保Model I/O的导出操作未在UI线程阻塞执行,虽然导出本身可在后台执行,但需保证文件访问的线程安全。
  • 目录权限验证:iOS临时目录默认允许App读写,若使用自定义目录,需确保创建时设置了正确的权限(如withIntermediateDirectories: true已包含权限处理)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:57:08