我正在 Xcode 13.2.1 中為 macOS(本地 12.1)撰寫一個應用程式。我需要螢屏截圖訪問權限,似乎獲得該權限的最簡單方法(在 macOS 11 及更高版本中)是使用CGRequestScreenCaptureAccess,并使用以下方法檢查資格CGPreflightScreenCaptureAccess:

并且我可以看到我的應用程式出現在系統偏好設定中,也符合預期:

啟用我的應用程式的權限會提示我退出我的應用程式并重新啟動它。這將從應用商店重新啟動我的應用程式的生產副本。但是,如果我退出它并在 XCode 中重新運行相同的構建,我的構建仍然沒有被授予記錄螢屏的權限(即使它在系統偏好設定中顯示為啟用)。如何允許我的應用有權在本地錄制我的螢屏?
uj5u.com熱心網友回復:
我在寫這個問題的程序中解決了這個問題,所以我想我會分享我的答案。如果我從我的應用程式檔案夾中洗掉我的應用程式的副本,一切似乎都有效。我認為有某種“聲稱”的程序。
如果我在我的應用程式檔案夾中重命名應用程式的副本,洗掉系統偏好設定中的螢屏錄制,然后從 Xcode 運行我的新版本,它似乎可以作業。
uj5u.com熱心網友回復:
在重命名我們的一個使用/usr/sbin/screencapture命令列工具的應用程式后,我們遇到了類似的問題。每次觸發螢屏截圖時都會出現安全提示,無論系統偏好設定中的激活狀態如何。
在開發程序中,該tccutil reset ScreenCapture {bundle identifier}命令有助于保持權限清潔以供后續測驗使用。
uj5u.com熱心網友回復:
在系統偏好設定中,它可以是您的應用程式的生產副本。您可能需要將其替換為您的除錯構建應用程式。
- 從系統偏好設定中洗掉它。
- 在 Finder 中找到您的除錯構建應用程式并將其拖放到系統偏好設定。
您的除錯構建應用程式必須獲得許可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473974.html
上一篇:資源中的OSXCocoa游標
