模拟复制/粘贴的应用程序在沙盒化后不起作用。如何让它工作?

时间:2013-05-26 23:58:41

标签: xcode macos cocoa macos-carbon

我正在构建一个模拟用户输入的应用程序(命令+ c和命令+ v)。沙箱之前,一切正常,但现在我从控制台收到这些错误:

首先,当我开火时:

  

5/27/13 1:35:11.980 AM appleeventsd [54]:带有pid 5343的沙盒应用程序,“copyBoard”用appleeventsd签入,但其代码签名无法验证(因为它已损坏,或者appleeventsd无法读取,因此它无法接收以名称,包ID或签名为目标的AppleEvents。错误=错误:#100013 {“NSDescription”=“SecCodeCopyGuestWithAttributes()返回100013, - 。” }(handleMessage()/ appleEventsD.cp#1755)com.apple.coreservices.appleevents.peer.0x7fa9b0411260.xpcq

然后,当我尝试模拟命令+ c时,我得到:

  

5/27/13 1:52:22.980 AM WindowServer [85]:post_filtered_event_tap_data:发件人被禁止合成事件

     

5/27/13 1:52:23.000 AM kernel [0]:Sandbox:sandboxd(6515)deny mach-lookup com.apple.coresymbolicationd

     

5/27/13 1:52:24.252 AM sandboxd [6515] :( [5343])CopyBoard(5343)否认隐藏控件

我正在寻找一种允许我在沙盒环境中全局复制和粘贴的解决方案。 Accessibility API可能是一个很好的答案吗?我的问题与我如何模拟用户输入有关吗?我很困惑,非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

沙箱旨在完全阻止您尝试的内容 - 允许应用程序模拟用户被定义为安全问题。如果您有一个可以安全完成的狭隘要求,您可以将其提交给Apple彻底的bug记者,作为对沙箱的必要改进。

由于这个原因,一般不支持Accessibility API - 不与其他应用程序一起玩!对于使用它的所有开发人员来说,这并没有那么顺利......

您可以在有限的受限情况下使用AppleEvents并使用适当的权利。

您可能需要访问developer.apple.com并阅读您可以找到的所有文档/观看视频/等,以了解您希望的内容是否可行。

我能为您提供的唯一希望是沙箱是一个移动目标,所以您可能会发现您可以做的比上述建议更多。去读。祝你好运。