iOS Swift4 未请求应用权限
iOS Swift4 Didn't Ask for Permission on App
我需要在我的应用程序中访问 CMAltimeter。
所以我当然需要征求许可。
我添加了 Privacy - Location When In Use Usage Description
,当然还有 Privacy - Motion Usage Description
,其值在 info.plist 中,但应用程序从不请求许可,授权状态始终未确定
(设备 -> iPhone XR iOS12)和最新的 Xcode。
我的登录 Xcode 只是使用我的 Apple ID 的个人团队,因为我们只在大学需要这个。 (直到今天我还没有购买开发者许可证)
App 和 CoreMotion 运行。 (CMDeviceMotion 不需要权限)
func myDeviceMotionQFE(){
if CMAltimeter.isRelativeAltitudeAvailable() {
switch CMAltimeter.authorizationStatus() {
case .notDetermined:
print("Altimeter -> NotDetermined")
break
case .denied:
print("Altimeter -> Denied")
break
case .restricted:
print("Altimeter -> Restricted")
break
case .authorized:
print("Altimeter -> Authorized")
}
欢迎光临!您需要做两件事才能获得测高数据的许可。首先是您已有的 plist 描述。第二个是调用CMAltimeter.authorizationStatus()。这将使用您在 plist 中的字符串请求用户的许可。
您可以获得 CMAltimeter CMAuthorizationStatus 中的四种结果之一:notDetermined、restricted、denied 或 authorized。如果你得到授权,你就可以走了。如果您被拒绝,则表示用户未授予他们许可。受限是这个位置数据有一些系统范围的限制(可能来自 MDM)。
在您的 Xcode 文档中搜索 CMAltimeter、authorizationStatus 和 CMAuthorizationStatus。
当您收到 "authorized" 响应时,您可以使用处理程序调用 startRelativeAltitudeUdpates,您的应用程序将在数据可用时获取更新。
我最初的问题是 startRelativeAltitudeUpdates(to:withHandler)
没有工作,并且被完全相同的问题所困扰:
CMAltimeter.authorizationStatus()
总是 .notDetermined
。
然而结果是 CMAltimeter
实例超出范围并被自动 ARC'ed 并且处理程序不再被调用。
总结:IOS12中CMAltimeter
没有requestAuthorization()
,都不需要
我需要在我的应用程序中访问 CMAltimeter。
所以我当然需要征求许可。
我添加了 Privacy - Location When In Use Usage Description
,当然还有 Privacy - Motion Usage Description
,其值在 info.plist 中,但应用程序从不请求许可,授权状态始终未确定
(设备 -> iPhone XR iOS12)和最新的 Xcode。 我的登录 Xcode 只是使用我的 Apple ID 的个人团队,因为我们只在大学需要这个。 (直到今天我还没有购买开发者许可证) App 和 CoreMotion 运行。 (CMDeviceMotion 不需要权限)
func myDeviceMotionQFE(){
if CMAltimeter.isRelativeAltitudeAvailable() {
switch CMAltimeter.authorizationStatus() {
case .notDetermined:
print("Altimeter -> NotDetermined")
break
case .denied:
print("Altimeter -> Denied")
break
case .restricted:
print("Altimeter -> Restricted")
break
case .authorized:
print("Altimeter -> Authorized")
}
欢迎光临!您需要做两件事才能获得测高数据的许可。首先是您已有的 plist 描述。第二个是调用CMAltimeter.authorizationStatus()。这将使用您在 plist 中的字符串请求用户的许可。
您可以获得 CMAltimeter CMAuthorizationStatus 中的四种结果之一:notDetermined、restricted、denied 或 authorized。如果你得到授权,你就可以走了。如果您被拒绝,则表示用户未授予他们许可。受限是这个位置数据有一些系统范围的限制(可能来自 MDM)。
在您的 Xcode 文档中搜索 CMAltimeter、authorizationStatus 和 CMAuthorizationStatus。
当您收到 "authorized" 响应时,您可以使用处理程序调用 startRelativeAltitudeUdpates,您的应用程序将在数据可用时获取更新。
我最初的问题是 startRelativeAltitudeUpdates(to:withHandler)
没有工作,并且被完全相同的问题所困扰:
CMAltimeter.authorizationStatus()
总是 .notDetermined
。
然而结果是 CMAltimeter
实例超出范围并被自动 ARC'ed 并且处理程序不再被调用。
总结:IOS12中CMAltimeter
没有requestAuthorization()
,都不需要