【问题标题】:iPad remembering camera permissions after delete—how to clear?iPad删除后记住相机权限-如何清除?
【发布时间】:2015-02-27 20:26:53
【问题描述】:

我正在尝试重新创建以下代码返回 AVAuthorizationStatusNotDetermined 的条件:

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];

但是,即使在应用程序被删除并重新安装后,iPad 似乎也会记住相机权限,因此每次都会返回 Authorized 或 NotAuthorized。知道如何重置权限以返回 NotDetermined 吗?

感谢阅读。

【问题讨论】:

    标签: ios ipad permissions camera ios-permissions


    【解决方案1】:

    您无法以编程方式重置权限。如果要重置权限,有两种方法:

    1. 重置操作系统
    2. 卸载应用等待一天

    我知道这两个选项对开发人员来说真的没有帮助,如果他们试图测试它的话。

    在不重置整个操作系统或等待一天的情况下测试应用的首次运行场景有三种替代方法。

    第一选择

    如Technical Note TN2265 中所述:

    您可以通过以下步骤实现后者,而无需实际等待一天:

    • 从设备中删除您的应用。
    • 完全关闭设备,然后重新打开。
    • 转到设置 > 常规 > 日期和时间,然后将日期提前一天或更长时间。
    • 再次完全关闭设备,然后重新打开。

    第二个选项

    当您删除一个应用程序时,iOS 会将您的应用程序的权限映射到您的应用程序的捆绑包 ID,它会保留一天的数据。因此,您还可以更改应用的 bundle id 以进行测试。

    第三个选项

    正如@rmaddy 在评论中所建议的,您可以重置所有位置和隐私权限:设置-> 常规-> 重置-> 重置位置和隐私。 请注意,这将重置该设备上所有应用的所有位置和隐私权限。

    【讨论】:

    • 这行得通,谢谢!我还发现,只需在 XCode 中更改 Bundle Identifier 也可以解决问题。
    • @Rogare:是的,这也会有所帮助,因为在删除应用程序后,iOS 会将权限映射到应用程序的捆绑包 ID 一天。因此,您可以更改捆绑 ID 或日期
    • 为什么不简单地做呢?设置 -> 常规 -> 重置 -> 休息位置和隐私
    • @rmaddy:是的,确实如此 :)(但我使用自己的设备进行开发)。新年快乐:)
    • 首选第二种解决方案,只需在Info.plist中更改“CFBundleIdentifier”键的值,构建并运行您的应用程序,出现相机权限提示,比第一种快得多测试时。
    【解决方案2】:

    在 iOS 14 上,转到“设置”->“隐私”->“定位服务”,选择该应用并允许位置访问选择“下次询问”

    【讨论】:

      【解决方案3】:

      如果您将设备上的操作系统版本更新到最新版本,这不再是问题。它在 13.3.1 上不起作用,但在 13.4.1 之后确实清除了权限

      【讨论】:

      • 在 iOS 13.5.1 上仍然是一个问题。我必须清除隐私和位置设置才能测试相机授权。否则即使删除、重启、重新安装也不询问。
      • 在 iOS 13.5 中仍然遇到问题
      • 刚刚在 iOS 模拟器 14.4 和真机 iOS 14.5 beta 3 上使用 Xcode 12.4 进行了测试。完全没有问题。
      【解决方案4】:

      什么对我有用:

      Windows -> 设备和模拟器 -> 已安装的应用程序部分

      使用 - 按钮从那里删除应用程序。

      猜你喜欢
      • 1970-01-01
      • 2010-09-15
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 2011-03-22
      相关资源
      最近更新 更多