Explore enhancements to your spatial business app
App Services 进阶 1m

Explore enhancements to your spatial business app

2025年6月9日

在 Apple 官方观看视频

一句话判断

visionOS 26 的企业 API 迎来实质性的开放 — UVC 视频和 Neural Engine 不再需要企业许可证,新增 Window Follow Mode、内容保护和 Camera Region API,加上自定义共享坐标空间,这是 visionOS 企业级应用的转折点。

这场 Session 讲了什么

Alex Powers 主讲,围绕 visionOS 26 企业 API 的四个方向展开:

更宽的 API 访问:去年需要企业许可证的 UVC 视频访问(通过 Developer Strap 连接 USB 摄像头)和 Neural Engine 访问,今年开放给所有开发者。对象跟踪支持命令行训练,可以自动化模型训练流程。新增 VisionEntitlementServices 框架,用于检查 app 许可证状态和 API 权限。

用户体验增强:Window Follow Mode 允许窗口跟随用户移动(需要 window-body-follow entitlement),适合需要在移动中监控仪表盘的场景。共享坐标空间(Shared Coordinate Spaces)通过 SharePlay 高级 API 或新的 SharedCoordinateSpaceProvider ARKit API,让同一房间内的多个 Vision Pro 用户看到空间中一致的内容。contentCaptureProtected SwiftUI view modifier 可以阻止敏感内容被截屏、录屏或共享。

环境可视化:Camera Frame Provider API 扩展到支持左右单独摄像头或立体声处理。新增 Camera Region API — CameraRegionView(VisionKit)和 CameraRegionProvider(ARKit),允许在窗口中显示真实世界特定区域的放大/增强视频流。

值得深挖的点

  1. SharedCoordinateSpaceProvider 是给企业开发者的底层控制权。SharePlay 的高级 API 自动处理发现、连接和会话管理,但如果你需要自定义网络基础设施或直接处理设备通信,ARKit 的这个新 provider 让你通过 pull/push CoordinateSpaceData 完全控制数据传输。

  2. contentCaptureProtected 的应用场景比你想象的广。不只是金融/医疗数据,任何不希望被泄露到外部屏幕的内容都可以保护。它同时支持 2D SwiftUI 视图和 3D RealityKit 场景。

  3. Camera Region API 有两种使用路径CameraRegionView(SwiftUI + VisionKit,简单场景,窗口位置决定摄像头区域)和 CameraRegionProvider(ARKit,底层控制,可以将摄像头区域锚定到 3D 对象)。建议先用高层 API,不够再降级。

代码片段

检查企业许可证权限

import VisionEntitlementServices

let details = EnterpriseLicenseDetails.shared
guard details.isLicenseValid,
      details.isApproved(for: .mainCameraAccess) else {
    print("未授权访问主摄像头")
    return
}

保护敏感内容

struct DocumentView: View {
    var body: some View {
        VStack {
            PublicContent()
            SensitiveDataView()
                .contentCaptureProtected() // 截屏/录屏时自动模糊
        }
    }
}

Camera Region(SwiftUI 高层 API)

import VisionKit

struct InspectorView: View {
    var body: some View {
        CameraRegionView(
            isContrastAndVibrancyEnhancementEnabled: true
        )
    }
}

最佳实践

  1. 企业许可证管理现在更简单了。License 文件在 Apple Developer 账户中直接管理,续期自动推送。用 VisionEntitlementServices 在运行时检查权限状态,不要硬编码许可逻辑。

  2. Camera Region 的资源消耗与区域大小成正比。Apple 建议 CameraRegionAnchor 占整体可见区域的六分之一或更小。在设计时做好性能评估。

  3. Window Follow Mode 是全局行为。一旦 entitlement 生效,设备上所有 app 的窗口都可以使用 follow 模式,不只是你的 app。

  4. 共享坐标空间的网络传输完全由你控制。你可以选择任何本地网络传输方式(TCP/UDP/自定义协议),ARKit 只负责坐标对齐。

还有什么值得关注

  • visionOS 26 的 SharePlay 更新让现有 SharePlay app 自动支持新的共享体验。
  • ARKit 新增共享 world anchors,可以精确地将共享内容锚定到房间。
  • WidgetKit 首次登陆 visionOS,支持纹理指定和用户接近度感知。
  • 如果你用 Blackmagic Camera 和 DaVinci Resolve 制作 Apple 沉浸式视频内容,可以在 app 中或 Safari 网页中直接播放。
应用服务 空间计算 商业与教育