Je dois donc implémenter le sandbox afin de conserver mon application Mac dans l'App Store Mac. Lorsque j'active le sandbox, mon application fonctionne pour la plupart. J'utilise la commande "top" pour obtenir les informations de mon CPU et de la RAM pour le système de l'utilisateur entier. Avec le bac à sable, je n'ai plus accès à ces fonctionnalités. Ceci est l'erreur d'exécution a reçu:Problèmes liés au bac à sable
/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
)
Votre plateforme fournit-elle la fonction 'getrusage()'? Fournit-il les détails dont vous avez besoin? (Analyser 'top' se sent comme un moyen grossier de découvrir cette information en premier lieu, mais c'est juste moi ..) – sarnold
Bien sûr, cela ne fonctionne pas; top essaie d'obtenir des informations sur tous les processus du système, ce qui n'est évidemment pas autorisé dans votre sandbox. @sarnold: Oui, il y a getrusage, y compris RUSAGE_CHILDREN (important si son application génère un tas de processus fils, ce qui semble probable). – abarnert
Mon application n'obtient pas l'utilisation des ressources de l'application elle-même, mais l'obtient pour l'ensemble de l'ordinateur. L'analyse syntaxique a été le moyen le plus simple que je vois pour obtenir les statistiques d'une manière propre et facile. –