iOS16系统如何获取iPad真实设备名?UIDevice.current.name返回异常
iOS 16 beta3 下
UIDevice.current.name无法获取自定义设备名问题说明 核心现象
- iOS 15及以下正式版系统中,调用
UIDevice.current.name接口可正常读取用户自定义的iPad设备名称 - iOS 16 beta3版本测试时,同一接口固定返回通用设备标识「iPad」,无法获取用户自定义名称
- 本次复现环境:iPadOS 16 beta3、Xcode 14.0 beta 3 (14A5270f)
- 已按官方说明配置对应entitlement权限,问题仍存在
根本原因
该现象不属于开发者配置错误,是iOS 16隐私规则调整叠加beta版本缺陷共同导致的:
- 从iOS 16开始,苹果将用户自定义设备名称纳入隐私保护范畴,默认禁止第三方App直接读取,该调整在WWDC 2022的隐私专项session中已有明确公示
- iOS 16 beta3阶段,自定义设备名的权限校验链路未完全开放:即使本地正确配置了entitlement文件,普通开发者账号签名的App依然无法获得系统的权限认可,会被直接拦截读取请求,统一返回设备通用型号名。
适配方案
分场景处理即可:
- 本地调试场景:打开调试设备的开发者模式权限开关,路径为「设置-隐私与安全性-开发者模式-调试选项」,找到
Allow App to Request Custom Device Name选项手动开启,重装修复App后即可正常读取自定义设备名 - 公测/分发场景:beta3阶段暂无稳定适配方案,不需要反复调整entitlement配置做无效尝试,等待iOS 16正式版、Xcode 14正式版发布后,在开发者后台完成对应权限ID的配置,配合正式版签名规则重新打包即可正常调用
- 兼容逻辑建议:不要在beta版本强行绑定设备名做业务逻辑,后续beta迭代中苹果可能调整该权限的申请交互流程,避免正式版上线后出现兼容故障
内容的提问来源于stack exchange,提问作者Uthen
相关产品推荐
相关产品推荐

