【发布时间】:2015-03-12 09:46:25
【问题描述】:
我制作了一个应用程序,要求用户授予对辅助功能的权限。它在应用程序首次启动并要求可访问性时正常工作
const void * keys[] = { kAXTrustedCheckOptionPrompt };
const void * values[] = { force };
CFDictionaryRef options = CFDictionaryCreate(kCFAllocatorDefault,
keys,
values,
sizeof(keys) / sizeof(*keys),
&kCFCopyStringDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
access = AXIsProcessTrustedWithOptions(options);
CFRelease(options);
问题是,当我发布新版本(使用 sparkle)时,可访问权限已经消失,所以用户应该再次授予权限。那是因为我的代码没有使用 Apple Developer ID 签名吗?我正在应用商店之外分发我的应用。
【问题讨论】:
-
我注意到您使用 Sparkle 进行更新。我对它不太熟悉,但怀疑它以某种方式更改可执行文件可能会更改某种校验和......试试 Sparkle 2。它仍处于测试阶段,但它允许例如沙盒,因此它可以处理这类情况
标签: objective-c macos sparkle