【问题标题】:Removing iOS permission alert for local notifications when running app in simulator在模拟器中运行应用程序时删除本地通知的 iOS 权限警报
【发布时间】:2015-07-12 12:59:07
【问题描述】:

我正在尝试在 KIF 中编写一个验收测试,该测试很早就要求本地通知权限。不幸的是,由于 iOS 模拟器安全原因it isn't possible to automate accepting iOS permission alerts using KIF。根据https://stackoverflow.com/a/28443743/62,似乎有办法禁用位置、地址簿、日历和照片的权限警报,但我找不到禁用本地通知权限的方法。我尝试了链接问题中的权利方法,但以下键均无效:

kTCCServiceNotifications
kTCCServiceNotification
kTCCServiceLocalNotification
kTCCServiceLocalNotifications

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

【问题讨论】:

标签: ios kif ios-permissions


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      相关资源
      最近更新 更多