KIF output: AX Exchange error: Error Domain=Accessibility Code=0 "Remote service does not respond to _accessibilityMachPort"

KIF output: AX Exchange error: Error Domain=Accessibility Code=0 "Remote service does not respond to _accessibilityMachPort"

当 运行 在设备上使用 iOS 8.1.3 进行 KIF 集成测试时,我收到大量以下类型的诊断消息作为控制台输出:

AX Exchange error: Error Domain=Accessibility Code=0 "Remote service does not respond to _accessibilityMachPort" UserInfo=0x1a55de50 {NSLocalizedDescription=Remote service does not respond to _accessibilityMachPort}

这发生在调用 waitForAccessibilityElement:view:withElementMatchingPredicate:tappable: 期间。

否则测试按预期工作,它看起来有点冗长。所以我想知道:这种诊断输出是功能还是错误?怎么解释呢?如果有的话,我可以或应该做些什么?

如果在设备上启用 VoiceOver(使用 iOS 8.1 Settings | General | Accessibility),这些警告显然会消失,但是现在一个收到(可能)大量冗余音频而不是日志消息的垃圾邮件。

KIF 使用 iOS 辅助功能 (VoiceOver) 不是为了它的正常目的,而是为了通过 accessibilityIdentifieraccessibilityLabel 定位 UI 元素(不提供辅助功能)。可以想象,相同的模式适用于 reported cases 大约 MFMailComposerViewController 用于填充 UI 中的邮件消息。如果是这样,那么 iOS 8.1 在不需要(启用)正常用途时减少辅助功能 (VoiceOver) 服务可能就足够了。这可以解释为什么 Mach 端口(显然)未绑定,并且可以反过来解释观察到的警告消息。

对于使用 Xamarin.iOS 的人,禁用 Xamarin.Calabash.Start(); // For Test Cloud 会暂停不间断记录