繁体   English   中英

在模拟器中运行应用程序时删除本地通知的iOS权限警报

[英]Removing iOS permission alert for local notifications when running app in simulator

我正在尝试在KIF上编写一个验收测试,该应用程序很早就要求提供本地通知权限。 不幸的是,由于iOS模拟器安全原因,无法使用KIF自动接受iOS权限警报 根据https://stackoverflow.com/a/28443743/62 ,有些方法可以禁用位置,地址簿,日历和照片的权限警报,但我找不到禁用本地通知权限的方法。 我尝试了链接问题的权利方法,但没有以下任何键工作:

kTCCServiceNotifications
kTCCServiceNotification
kTCCServiceLocalNotification
kTCCServiceLocalNotifications

还有其他想法吗? 现在我正在通过更改生产代码来解决这个问题,以便在验收测试运行时有条件地禁用本地通知,但理想情况下我不必这样做。

不幸的是,我认为在自动化测试中没有一种很好的方法可以做到这一点。 我知道即使重置模拟器有时也不足以重置权限。 我会将您的测试设计为不测试系统调用,而是测试您自己的应用程序代码。

根据用户是否允许通知来测试不同功能的一种方法是提取调用以检查权限,然后在测试中将此方法存根。 这种方法是最佳实践,因为目标不是测试iOS是否有效,而是应用程序代码是否正确。

通过在applicationState.plist中授予权限可以抑制通知权限:

  • 在模拟器上运行您的应用程序,然后点击“确定”以获取任何权限弹出窗口
  • 导航到“〜/ Library / Developer / CoreSimulator / Devices / {$ deviceId} /data/Library/BackBoard/applicationState.plist”
  • 在引导之前,将UI测试模拟器的applicationState.plist替换为上面的那个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM