我正在尝试暂时禁用TouchID身份验证,因此即使手指匹配,手机也不会取消阻止。我怎样才能做到这一点?有没有办法通过com.apple.springboard.plist以编程方式更新设置中的开关,就像我使用振动一样?
答案 0 :(得分:1)
检查设备是否越狱的最简单方法是检查canOpenURL
(例如,cydia,mobileCydia URL)。您也可以尝试写入保留路径(例如〜/ private)。还有与fork()和正在运行的进程相关的方法,您可以在逆向工程博客上阅读它。
你应该在运行类似下面的代码之前检查它:
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {}
---编辑---
在评论中回答你的问题(就我理解的问题而言):
- (void)performTouchIdLogin {
LAContext *context = [[LAContext alloc] init];
LAPolicy policy = LAPolicyDeviceOwnerAuthenticationWithBiometrics;
NSError *error = nil;
BOOL isJailbroken = ([[NSFileManager defaultManager] fileExistsAtPath: @"/bin/bash"]); // TODO: handle simulator
BOOL canUseTouchID = ([context canEvaluatePolicy:policy error:&error]);
if (!isJailbroken && canUseTouchID) {
[context evaluatePolicy:policy localizedReason:@"Please log in using TouchID" reply:^(BOOL success, NSError *error) {
// do something
}];
};
}