在模拟器中重置 ALAssetsLibrary 的权限

Posted

技术标签:

【中文标题】在模拟器中重置 ALAssetsLibrary 的权限【英文标题】:Reset permissions for ALAssetsLibrary in the simulator 【发布时间】:2013-02-23 19:35:51 【问题描述】:

我有一个ios 应用程序,它需要询问用户是否有权访问他们的照片。我试图通过在应用第一次请求 iOS 权限时向用户显示提示和解释来增强用户体验。

我可以使用[ALAssetsLibrary authorizationStatus] 来获取当前状态(我的应用程序仅定位> iOS 6.0)。我正在尝试测试ALAuthorizationStatusNotDetermined 案例,但我已经授予我的应用访问权限。根据另一个 SO 问题here,设备无法重置权限(即使删除并重新安装应用程序,它们也可以打开或关闭)。

但我想知道这是否可以在模拟器中完成。 我可以在模拟器中重置照片访问权限吗?似乎没有任何关于此的谷歌问题/答案?简单地在模拟器中删除并重新安装应用程序是行不通的。

是否有任何我们可以重置的幕后文件? - 了解我们如何访问模拟器文件系统,这与设备不同。

任何想法都会很棒! 谢谢!

【问题讨论】:

您是否尝试过 iOS 模拟器菜单中的“重置内容和设置...”? (但请注意,这会从模拟器中删除所有应用程序并重置模拟器中的所有内容!) 不幸的是,这不起作用。 authorizationStatus 仍然返回为ALAuthorizationStatusAuthorized。还有其他想法吗? 【参考方案1】:

在 iOS 7 中,您可以像在设备上一样重置模拟器中的隐私警告:

 General -> Reset -> Reset Location & Privacy

【讨论】:

【参考方案2】:

根据iOS 6.0 Release Notes:

iOS 模拟器中不会为访问的应用显示任何隐私警报 照片、通讯录、日历和提醒。

因此,您根本无法在模拟器上测试要求访问照片的提示,您必须在设备上进行测试。在设备上,您可以在“设置”应用中重置隐私设置(常规 > 重置 > 重置位置和隐私)。

【讨论】:

以上是关于在模拟器中重置 ALAssetsLibrary 的权限的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试 ABAddressBook 和 ALAssetsLibrary 请求访问

如何在模拟器中重置钥匙串?

如何在集成测试中重置 Firestore 模拟器

在 iOS 模拟器中重置位置警告的编程方式

在 iOS 模拟器中重置对联系人的访问权限?

如何在 Android Studio 中重置模拟器大小