Verwenden Sie FSEvents in der Sandbox-App

Ich versuche, FSEvents in meiner Sandbox-App zu verwenden, um einige Verzeichnisse zu überwachen. Ich habe folgende Klasse implementiert:

@implementation SNTracker

- (id)initWithPaths:(NSArray *)paths {
    self=[super init];
    if (self) {
        trackedPaths=paths;
        CFTimeInterval latency=1.0;
        FSEventStreamContext context={0,(__bridge void *)self,NULL,NULL,NULL};
        FSEventStreamRef eeventStream=FSEventStreamCreate(kCFAllocatorDefault,&callback,&context,(__bridge CFArrayRef)trackedPaths,kFSEventStreamEventIdSinceNow,latency,kFSEventStreamCreateFlagUseCFTypes|kFSEventStreamCreateFlagWatchRoot|kFSEventStreamCreateFlagFileEvents);
        FSEventStreamScheduleWithRunLoop(eeventStream,[[NSRunLoop mainRunLoop] getCFRunLoop],kCFRunLoopDefaultMode);
        FSEventStreamStart(eeventStream);
    }
    return self;
}

static void callback(ConstFSEventStreamRef streamRef,void *clientCallBackInfo,size_t numEvents,void *eventPaths,const FSEventStreamEventFlags eventFlags[],const FSEventStreamEventId eventIds[]) {
    NSLog(@"asd");
}

Das Problem ist, dass "asd" niemals gedruckt wird (d. H. Die Rückruffunktion wird niemals aufgerufen). Wenn ich "App Sandboxing aktivieren" in der Zusammenfassung meines Hauptziels in Xcode deaktiviere, wird der Rückruf aufgerufen. Mache ich etwas falsch? Die einzige Berechtigung, die ich für die Sandbox-App erteilt habe, ist der Lese- / Schreibzugriff auf vom Benutzer ausgewählte Dateien.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage