因此,我必须实现沙箱,以便将我的Mac应用程序保留在Mac应用程序商店中。当我启用沙箱时,我的应用程序在大部分情况下都可以工作。我使用"top“命令来获取整个用户系统的CPU信息和RAM信息。使用沙箱,我不再能够访问这些功能。这是收到的运行时错误:
/bin/sh: /usr/bin/top: Operation not permitted
/bin/sh: /usr/bin/top: Operation not permitted
2012-05-29 20:40:57.911 QuickToggles[53714:403] *** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]
2012-05-29 20:40:57.928 QuickToggles[53714:403] (
0 CoreFoundation 0x00007fff986bcf56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff97f98d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff98666370 -[__NSArrayI objectAtIndex:] + 208
3 QuickToggles 0x0000000100001961 -[StatusBarAppAppDelegate updateInfo:] + 177
4 Foundation 0x00007fff94666f40 __NSFireTimer + 102
5 CoreFoundation 0x00007fff98671934 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
6 CoreFoundation 0x00007fff98671486 __CFRunLoopDoTimer + 534
7 CoreFoundation 0x00007fff98651e11 __CFRunLoopRun + 1617
8 CoreFoundation 0x00007fff98651486 CFRunLoopRunSpecific + 230
9 HIToolbox 0x00007fff9806b4d3 RunCurrentEventLoopInMode + 277
10 HIToolbox 0x00007fff980726d3 ReceiveNextEventCommon + 181
11 HIToolbox 0x00007fff9807260e BlockUntilNextEventMatchingListInMode + 62
12 AppKit 0x00007fff90441e31 _DPSNextEvent + 659
13 AppKit 0x00007fff90441735 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
14 AppKit 0x00007fff9043e071 -[NSApplication run] + 470
15 AppKit 0x00007fff906ba244 NSApplicationMain + 867
16 QuickToggles 0x0000000100001882 main + 34
17 QuickToggles 0x0000000100001854 start + 52
18 ??? 0x0000000000000003 0x0 + 3
)发布于 2012-06-05 05:31:16
听起来您想要显示每个正在运行的进程的信息,比如Activity Monitor的主窗口。你只是不能在沙箱中做到这一点。句号。*
所以,提交一个雷达,请求苹果给你一种方法,并解释为什么你认为它是合理的。同时,保持无沙箱状态。如果苹果告诉你你不应该这样做(我认为这是一个可能的结果),那么你要么删除这个功能,要么停止在App Store中销售(并找到一些方法将现有用户转移到另一个渠道)。
事实上,你的应用程序看起来有一半的功能在沙箱中无法工作--而且已经违反了MAS的指导方针,这意味着每次你提交更新时,你都有被拒绝和被卡住的风险。
*实际上,您可以这样做,例如,发送脚本到活动监视器,并通过UI脚本或其他方式抓取其输出,如果用户启用了可访问性,但即使这样做有效,MAS审阅者也不会喜欢它…那就不要。
https://stackoverflow.com/questions/10808631
复制相似问题