在模拟器中运行应用程序时,删除本地通知的iOS权限警报
我试图在KIF上写一个接受testing,在很早的时候要求获得本地通知的权限。 不幸的是,由于iOS模拟器的安全性原因,使用KIF无法自动接受iOS权限警报 。 根据https://stackoverflow.com/a/28443743/62它看起来像有办法禁用位置,地址簿,日历和照片权限提醒,但我找不到方法来禁用本地通知权限。 我尝试了链接问题的授权方法,但以下任何一个键都不起作用:
kTCCServiceNotifications kTCCServiceNotification kTCCServiceLocalNotification kTCCServiceLocalNotifications
任何其他的想法? 现在我正在通过更改我的生产代码来解决这个问题,以便在验收testing运行时有条件地禁用本地通知,但理想情况下我不需要。
不幸的是,我不认为在自动化testing中有这样做的好方法。 我知道,即使重置模拟器有时不足以重置权限。 我会devise你的testing不testing系统调用,但你自己的应用程序代码。
根据用户是否允许通知来testing不同function的一种方法是提取调用以检查权限,然后在testing中存储此方法。 这个方法将是最好的做法,因为目标不是testingiOS是否工作,而是如果你的应用程序代码是正确的。
通知权限可以通过在applicationState.plist中授予权限来取消:
- 在模拟器上运行您的应用程序,然后点击“确定”以获取任何权限popup窗口
- 导航到“〜/ Library / Developer / CoreSimulator / Devices / {$ deviceId} /data/Library/BackBoard/applicationState.plist”
- 将UItesting模拟器的applicationState.plistreplace为上面的那个,然后再引导它
- 在Swift中从另一个ViewController访问variables
- 保留数据一段时间的最佳方式(如4-5天)
- React Native iOS Native View使用适当的reactTag发送事件
- AFNetworking v3.1.0 multipartFormRequestWithMethod上传带引号的JSON数值
- “构build设置”中的“Objective-C桥接头”条目不会出现在Xcode 8.3中
- UIImageView上的iOS CAKeyframeAnimation rotationMode
- 使用“自动布局”弹出键盘时,如何调整视图大小
- Cordova,Phonegap和ionic(ios缺少1024×1024图标)
- 用于MFMessageComposeViewController的替代方法