我正在用Xcode 13.2.1为macOS编写一个应用程序(本地为12.1)。我需要截图访问,获得许可(在macOS 11及更高版本中)的最简单方法是使用CGRequestScreenCaptureAccess,并使用CGPreflightScreenCaptureAccess检查资格。
https://stackoverflow.com/a/65423834/444912
我的代码本质上是这样的:
let hasScreenAccess = CGPreflightScreenCaptureAccess();
if (!hasScreenAccess) {
CGRequestScreenCaptureAccess()
}当我运行一个新的构建时,就会像预期的那样出现一个模式:

我还可以看到我的应用程序出现在系统首选项中,也像预期的那样:

启用应用程序的权限会促使我退出应用程序并重新启动它。这将重新启动我的应用程序的制作副本,从应用程序商店。但是,如果我退出并在XCode中重新运行相同的构建,我的构建仍然没有被授予记录屏幕的权限(即使它在系统首选项中显示为已启用)。如何允许我的应用程序拥有在本地记录我的屏幕的权限?
发布于 2022-04-29 10:36:22
在重新命名我们的一个应用程序之后,我们遇到了一个类似的问题,该应用程序使用了/usr/sbin/screencapture命令行工具。无论系统首选项中的激活状态如何,每次触发屏幕捕获时都会出现安全提示。
在开发过程中,tccutil reset ScreenCapture {bundle identifier}命令帮助保持权限干净,以便进行后续测试。
发布于 2021-12-31 00:01:36
我在写这个问题的过程中解决了这个问题,所以我想我可以分享我的答案。如果我删除我的应用程序的副本从我的应用程序文件夹,似乎一切正常。我认为有某种“声称”的过程在进行。
如果我将应用程序的副本重命名在我的应用程序文件夹中,删除系统首选项中的屏幕记录,然后从Xcode中运行我的新构建,这似乎是可行的。
发布于 2022-05-13 04:48:49
在系统首选项中,它可以是应用程序的制作副本。您可能需要用调试构建应用程序替换它。
Preferences.
您的调试构建应用程序必须被授予权限。
https://stackoverflow.com/questions/70537845
复制相似问题