所以我必须实施沙盒才能将我的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
)
答案 0 :(得分:0)
听起来您想要显示有关每个正在运行的进程的信息,例如Activity Monitor的主窗口。你不能在沙盒中做到这一点。周期。*
因此,请提交一份雷达,要求Apple为您提供一种方法,并解释您认为合理的原因。同时,保持未装箱。如果Apple告诉你你不应该这样做(我认为这可能是一个结果),那么你必须删除该功能,或者停止在App Store中销售(并找到一些转换方式)您现有的用户到另一个频道。)
实际上,它看起来像你的应用程序所做的一半不会在沙盒中工作 - 并且已经违反了MAS指南,这意味着每次提交更新都会有被拒绝和被卡住的风险。
*实际上,您可以通过例如将脚本发送到Activity Monitor并通过UI脚本等来抓取其输出,如果用户已启用可访问性,但即使这样可行,MAS审阅者也不会喜欢它...所以不要。