是否可以在模拟器中使用xcuitest自动执行触摸ID或面部ID?

时间:2018-11-30 10:25:59

标签: ios xcuitest

有没有一种方法可以使用模拟器中的xcuitest框架自动执行面部识别或触摸识别。我可以手动执行注册面部/触摸ID并执行匹配或不匹配的方案。但是我想知道它是否可以自动化?

2 个答案:

答案 0 :(得分:2)

考虑到Kane Cheshire的this post,可以通过发送达尔文通知来自动进行触摸ID和面部ID的单元测试:

+ (void)enrolled {
  int token;
  notify_register_check("com.apple.BiometricKit.enrollmentChanged", &token);
  notify_set_state(token, 1);
  notify_post("com.apple.BiometricKit.enrollmentChanged");
}

不过仅在Objective-C中,因此您可能需要使用桥接标头。

将他的Biometrics.m中的文件Biometrics.hdemo导入Gitub,您将可以从Biometrics.enrolled()调用XCTestCase

答案 1 :(得分:0)

或者,如果Touch / FaceId阻止了XCUITesting,我建议您进行如下所示的简单检查以禁用Touch / faceId

guard CommandLine.isRunningUITests else {
    return true
}
extension CommandLine {
    static var isRunningUITests:Bool {
        return CommandLine.arguments.contains("--uitesting")
    }
}

您可以像下面一样轻松通过LaunchArguments

XCUIApplication().launchArguments.append("--uitesting")
相关问题