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

在WatchOS Swift开发中如何正确获取苹果手表设备ID?

watchOS获取设备标识符问题解答

报错根因

  • UIDevice 是iOS、iPadOS专属类,watchOS框架未提供该类定义,因此调用 UIDevice.current 必然触发作用域不存在的报错,不属于操作错误。
  • 苹果全平台都禁止获取永久硬件级设备ID,所有开放获取的标识符均为隐私合规的可重置类型。

合法获取设备标识的方案

  • 优先使用系统提供的供应商标识符:
    直接调用watchOS专属的WKInterfaceDeviceAPI获取,示例代码:
    import WatchKit
    
    // 获取供应商唯一标识
    if let vendorID = WKInterfaceDevice.current().identifierForVendor?.uuidString {
        print("当前设备供应商ID:\(vendorID)")
    }
    

    该标识的重置规则:同一开发者账号下的所有关联应用全部被用户卸载后,再次安装会生成新的ID,单个应用卸载重装不会重置。

  • 自定义持久化标识:
    如果需要更稳定的标识,可自行生成UUID存入Keychain,只要用户不执行手表抹掉全部内容的操作,该标识会永久留存,不受应用卸载重装影响,示例逻辑:
    // 生成自定义设备ID
    let customDeviceID = UUID().uuidString
    // 此处接入你自己封装的Keychain存储逻辑持久化保存即可
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:57:01