在开发中我们经常使用系统的api, 最近发现在获取设备名称时, 发现并不能得到我们想要的结果:
print("name: \(UIDevice.current.name)")
查看api发现, UIDevice.current.name 在iOS16后已经失效
由于设备名称属于隐私, 苹果改成申请权限才能使用, 并且使用也有一定的限制, 具体限制点击上图的连接查看详情.
如果你的app符合要求, 那么想要获取确的设备名需要如下三步:
1.填写申请权限
根据要求填写完, 会要求填写bundleID和app名称, 等待苹果审核, 一般审核通过后会发送邮件, 接下来就可以继续配置
申请权限地址: https://developer.apple.com/contact/request/user-assigned-device-name/
2.开发者后台配置
在开发者中心里找到对应的bundleID, 点击进去, 找到Additional Capabilities, 勾选上, 接下来就可以配置工程了
3.配置工程
打开xcode, 找到*.entitlements, 配置如下信息为YES
com.apple.developer.device-information.user-assigned-device-name
大功告成, 经过这三步, 就可以正确的获取设备名称了