Mac OS:开发时记住应用程序的安全和隐私选项

Mac OS: Remember Security & Privacy options for app while developing

我正在开发一个 Mac OS 应用程序,它可以访问捕获计算机屏幕或控制鼠标等信息。 (该应用仅供个人使用)

这在开始时工作正常。当我的应用程序尝试访问某项功能时,系统会要求我在系统首选项中允许此操作(请参阅下面的对话框),如果我这样做,我就可以访问该内容。只要我不更改我的代码中的任何内容,我就可以随时重新运行该应用程序,并且权限保持不变。

我的问题是,每次我更改代码中的某些内容时,我还需要再次向应用程序授予权限。有人可以帮助我并解释为什么以及我可以做些什么来防止这种情况吗?

Mac OS:卡特琳娜 10.15.7

非常感谢您的帮助!

因此,即使看起来您实际上必须一遍又一遍地取消选中和选中隐私设置中的框,但这并不意味着您必须一直自己做。

对我有帮助的是记录一个 Automator 工作流程,为我检查复选框。然后,您可以 运行 在构建阶段将此工作流程 运行 用于每个构建。

步骤:

  1. 打开 window 的安全和隐私设置
  2. 打开自动程序
  3. 创建新的工作流程
  4. 点击右上角的红色记录按钮(您可能还需要在安全和隐私设置中将 Automator 列入白名单)
  5. 记录您为应用程序启用隐私通常执行的步骤(uncheck/check 相应的框)
  6. 在 automator 中结束录制,运行 工作流程一次以确保其正常工作
  7. 将 Automator 工作流程播放速度设置为最大 (10x) 以加快速度,同时将超时设置为 0
  8. 将自动化器工作流程保存到磁盘
  9. 在 Xcode 中单击您的目标并切换到 'Build Phases' 选项卡
  10. 单击“+”> 'New Run Script Phase'
  11. 添加以下 shell 脚本(将路径替换为您的 Automator 工作流程文件的路径) /usr/bin/automator~/MyFolder/MyWorkflow.workflow
  12. 您可能还需要在 'Accessibility' 下的安全和隐私设置中将 Automator 列入白名单

如果您没有在工作流程中包含事先实际打开的步骤,则需要将安全和隐私设置 window 保持打开状态。

现在,当您 build/run 应用程序时,Automator 脚本应该为您完成工作,并且应该正确设置隐私设置。