tisfeng / Easydict

一个简洁优雅的词典翻译 macOS App。开箱即用,支持离线 OCR 识别,支持有道词典,🍎 苹果系统词典,🍎 苹果系统翻译,OpenAI,Gemini,DeepL,Google,Bing,腾讯,百度,阿里,小牛,彩云和火山翻译。A concise and elegant Dictionary and Translator macOS App for looking up words and translating text.
GNU General Public License v3.0
6.38k stars 324 forks source link

🐞 反馈问题:macOS 15 beta 1 出现重复请求权限的问题 #587

Open iskerwin opened 3 weeks ago

iskerwin commented 3 weeks ago

请先确认以下事项:

问题描述

在 macOS 15 beta 1 中,出现重复请求权限的问题

该问题是否可以稳定重现?

可重现

重现步骤

重启电脑,使用截图翻译就会出现

截图

2024-06-13 16 31 18

期望结果

是不是因为 macOS 15 更新了隐私设置的原因

解决方案(可选)

No response

设备型号 && 系统版本

Apple M1,macOS 15 beta 1

是否愿意提交 PR 解决该问题?

github-actions[bot] commented 3 weeks ago

Hello iskerwin, Thank you for your first issue contribution 🎉

tisfeng commented 3 weeks ago

我还没升级 macOS 15,不知道啥情况,可能是苹果又加强了对隐私权限 API 的管理,得适配新的 API,稍后我查一下。

我要过段时间才能升级系统,如果你们有谁升级了,可以先看看这个问题。

Jerry23011 commented 2 weeks ago

正好用虚拟机跑了下 beta 1,Zoom 也会出现同样的问题,我觉得可能是 macOS 的 bug,最新的 Privacy session 里也貌似没提到 Screen Recording 权限

https://developer.apple.com/videos/play/wwdc2024/10123/

SCR-20240615-dvig SCR-20240615-dxei
tisfeng commented 2 weeks ago

看了一下介绍,新版本是没有提到录屏权限变化。。

不确定是不是之前使用的请求截图权限 API 有问题,我参考这里 how-to-trigger-screen-recording-permission-system-modal-dialog-on-macos-catalina ,使用 CGRequestScreenCaptureAccess 替换了废弃的方法 CGDisplayStreamCreate

我这边测试没有问题, @Jerry23011 你在 macOS 15 beta 1 跑一下看看 https://github.com/tisfeng/Easydict/pull/591

Jerry23011 commented 2 weeks ago

我这边测试没有问题, @Jerry23011 你在 macOS 15 beta 1 跑一下看看。

15 上还是每次重启 macOS 并启动截图功能就会弹

我觉得可以通过反馈助理向Apple反馈一下 @iskerwin https://developer.apple.com/cn/bug-reporting/

tisfeng commented 2 weeks ago

@Jerry23011 请帮忙测试一下其他用到【录屏与系统录音】权限的应用在 macOS 15 beta 1 上的运行情况,尤其是开源软件 alt-tab-macosIce

如果它们运行良好,稍后我们可以参考它们的代码。

image
Jerry23011 commented 2 weeks ago

AltTab 也有这个问题,但是 Ice 和 QuickRecorder 都没有

tisfeng commented 2 weeks ago

奇怪,我看 Ice 似乎也是用的 CGRequestScreenCaptureAccess() 请求权限,和我们这次修改后的一样 https://github.com/tisfeng/Easydict/pull/591 🤔

tisfeng commented 2 weeks ago

我看了一下,QuickRecorder 使用的是 ScreenCaptureKit 请求权限,似乎也行,不知道它们到底有什么区别 😑

@Jerry23011 你试一下这个代码 https://github.com/tisfeng/Easydict/pull/592

Jerry23011 commented 2 weeks ago

就算用 ScreenCaptureKit 还是有 popup,可能不是 API 的问题,我稍后看下 QuickRecorder 的其他内容

Jerry23011 commented 2 weeks ago

很奇怪,我看了 Ice 和 QuickRecorder 的 entitlements,也并没有 specify 什么相关的内容,而且也都没有加 .xcprivacy

tisfeng commented 2 weeks ago

是挺奇怪的, @Jerry23011 后续你来跟进一下这个问题吧。

itdida commented 1 week ago

我也遇到这个问题

  1. 升级 sequoia之后就出现
  2. 使用截图之类的功能就会出现
  3. 重启系统,第一次使用截图之类的功能必现
  4. 后面一段时间就不会出这个提示,但是过一段时间又会出来这个提示
  5. xnip(一个截图软件)也一样的情况
Jerry23011 commented 1 week ago

@itdida 还遇到过什么需要录屏权限但是没有出现这个问题的 app 吗?