Macos AXIsProcessTrustedWithOptions不';即使在可访问性中勾选了应用程序,也不会返回true

Macos AXIsProcessTrustedWithOptions不';即使在可访问性中勾选了应用程序,也不会返回true,macos,qt,accessibility,Macos,Qt,Accessibility,正如回答的那样,我使用AXIsProcessTrustedWithOptions(没有选项)来测试我的应用程序是否已在辅助功能面板中启用。如果没有,则提示窗口让用户启用它。这个测试调用也绑定了一个按钮,所以用户不需要关闭UI并重新打开它 但有时,即使用户启用应用程序,AXIsProcessTrustedWithOptions仍然返回false。当我检查sqlite数据库时,它将我的应用程序显示为“kTCCServiceAccessibility | com.abc.def | 0 | 1 | 1

正如回答的那样,我使用AXIsProcessTrustedWithOptions(没有选项)来测试我的应用程序是否已在辅助功能面板中启用。如果没有,则提示窗口让用户启用它。这个测试调用也绑定了一个按钮,所以用户不需要关闭UI并重新打开它

但有时,即使用户启用应用程序,AXIsProcessTrustedWithOptions仍然返回false。当我检查sqlite数据库时,它将我的应用程序显示为“kTCCServiceAccessibility | com.abc.def | 0 | 1 | 1 |”。前1位数字表示已被允许。但是api调用仍然返回false。此时,如果我关闭UI,应用程序将在可访问性面板中解锁,这将导致循环,因此用户永远无法通过此步骤

另一件事是这个应用程序实际上是前一个应用程序的版本2。但是用户确实用v2包替换了这个包。不确定这是否相关

你知道为什么会这样吗

NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @NO};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
if (!accessibilityEnabled) {
    NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility";
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
}

我在macOS 10.14.5上用Xcode开发应用程序时遇到过这种情况,我尝试了
AXIsProcessTrusted
AXIsProcessTrustedWithOptions


在浪费了大量时间尝试各种事情后,包括为AxisProcessedTrustedWithOptions提供不同的选项、注销/登录、重新启动、祈祷和哭泣,我最终在沮丧中关闭了我的机器并重新启动。然后它成功了。希望没有其他人有同样的体验。

在“系统首选项”中关闭和打开应用程序后,它对我有效