Fin da OS X 10.7.3, il mio editor di testo sta impostando il bit "quarantena" su qualunque file tocchi.Come posso impedire alla mia app di impostare il bit "quarantena"?
Il mio editor di testo è progettato per funzionare con script di shell e se il bit di quarantena è impostato, non è possibile eseguire uno script di shell dalla riga di comando, finché non si fa doppio clic su Finder e si passa a "Questa applicazione è stata scaricata da Internet "(o rimuovere il bit di quarantena con xattr
).
Per esempio, ho appena creato uno script "ciao mondo" nella mia app, è stato messo in quarantena, e non può essere eseguita:
$ xattr -l foo
com.apple.quarantine: 0006;4f51dd2f;Dux;
$ chmod +x foo
$ ./foo
-bash: ./foo: Operation not permitted
Se rimuovo il bit di quarantena, lo script funziona:
$ xattr -d com.apple.quarantine foo
$ ./foo
hello world
Secondo alcuni post del forum, TextEdit imposta anche il bit di quarantena in qualsiasi script di shell che crea.
che sto utilizzando un semplice NSDocument
sottoclasse per creare il file:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
{
return [self.textStorage.string dataUsingEncoding:self.stringEncoding];
}
Come posso rimuovere la punta di quarantena da file creati nella mia app? Altri editor di testo, come TextWrangler, non impostano il bit di quarantena.
UPDATE
Un po 'più di informazioni, ciò si verifica solo quando si crea un file "domanda script", che è qualsiasi cosa, da script perl a html.
E si verifica solo quando la mia app è in modalità sandbox. Disabilitare il sandboxing risolve il problema, ma questa non è una soluzione a lungo termine.
Ho archiviato un bug con Radar, sembra che non ci possa essere altro da fare che attendere/sperare che il viale venga risolto.
Sei sicuro che questo è stato risolto? Sto avendo lo stesso identico problema su 10.8.2 - tutti i file creati dalla mia app vengono messi in quarantena. –
@DennisRitchie se creo un nuovo documento di testo normale in TextEdit e lo salvi sul desktop come "test.rb" il file non viene messo in quarantena. Su OS X 10.7 sarebbe stato messo in quarantena. Forse ci sono altre situazioni in cui può accadere la stessa cosa? Penso che dovresti aprire una nuova domanda separata dalla mia. –
non è stato risolto neanche per me in 10.8. stranamente, l'aggiunta di 'com.apple.security.files.user-selected.executable' alle autorizzazioni risolve il problema per me – user1259710