2015-07-01 3 views
2

У меня есть изолированное OS X приложение, где я копирую файл из папки /Contents/Resources/ приложения в NSHomeDirectory(). Все работает хорошо, за исключением того, что скопированный файл помечен как помещенный в карантин. Запуск xattr -l в терминале дает следующий результат:NSFileManager 'copyItemAtPath:' создает копии в карантинном файле

$ xattr -l myfile 
com.apple.quarantine: 0006;00000000; 

Как я могу скопировать файл без его быть помечены как сертифицируют, или в худшем случае, как я могу удалить этот атрибут программно?

ответ

1

OS X автоматически помещает в карантин определенные файлы (исполняемые файлы, оболочки, веб-архивы и т. Д.) Для sandboxed apps. Там в entitlement, что вы можете вручную включить, чтобы предотвратить это:

com.apple.security.files.user-selected.executable 

ПРИМЕЧАНИЕ: Это право не имеет Xcode флажок, и, таким образом, должны быть добавлены в список право собственности вашего приложения вручную

App Sandbox Entitlement Keys

+0

Итак, первая копия файла, которую я тестировал после добавления права, не попала на карантин, но теперь все последующие копии файлов снова помещаются в карантин! Любая идея, что здесь происходит? – Tarek

+0

@Tarek, Какие типы файлов вы копируете и т. Д.? Это может быть просто изменение прав на соответствие файлам. Также, какая настройка гейткипера выбрана в системных настройках> безопасность и конфиденциальность. –

+0

Я копирую файлы приложения (.app). Настройки гейткипера - «Mac App Store и идентифицированные разработчики». – Tarek

Смежные вопросы