2

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

首先,当我启动它时:

2013 年 5 月 27 日上午 1:35:11.980 appleeventsd[54]:一个 pid 为 5343 的沙盒应用程序,“CopyBoard”已使用 appleeventsd 签入,但无法验证其代码签名(可能是因为它已损坏,或者无法验证)由 appleeventsd 读取),因此它无法接收以名称、捆绑 ID 或签名为目标的 AppleEvents。错误=错误:#100013 { "NSDescription"="SecCodeCopyGuestWithAttributes() 返回 100013,-。" } (handleMessage()/appleEventsD.cp #1755) com.apple.coreservices.appleevents.peer.0x7fa9b0411260.xpcq

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

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

2013 年 5 月 27 日上午 1:52:23.000 内核 [0]:沙盒:sandboxd(6515) 拒绝 mach-lookup com.apple.coresymbolicationd

2013 年 5 月 27 日上午 1:52:24.252 沙盒 [6515]: ([5343]) CopyBoard(5343) 拒绝隐藏控制

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

4

1 回答 1

1

沙盒旨在完全阻止您似乎正在尝试的事情 - 允许应用程序模拟用户被定义为安全问题。如果您有一个可以安全完成的狭窄要求,您可以将其提交给 Apple 彻底的错误报告者,作为对沙箱的必要改进。

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

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

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

我能给你的唯一希望是沙盒是一个移动的目标,所以你可能会发现你可以做的比上面建议的要多。去读吧。祝你好运。

于 2013-05-27T02:55:19.000 回答