2015-07-01 45 views
2

我有一個沙盒OS X應用程序,我從應用程序的/Contents/Resources/文件夾複製文件到NSHomeDirectory()。除了複製的文件被標記爲隔離外,所有的都可以正常工作。在終端運行xattr -l給出了下面的輸出:NSFileManager'copyItemAtPath:'創建隔離文件副本

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

我如何可以複製文件,而無需其標記爲quarantied,或最壞的情況下,我怎麼能編程方式刪除這個屬性?

回答

1

OS X自動隔離sandboxed apps的某些文件(可執行文件,shell腳本,web檔案等)。這裏有一個entitlement,你可以手動來防止這種情況:

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

注:此權利沒有Xcode的複選框,因此必須 添加到您的應用程序的權利屬性列表中手動

App Sandbox Entitlement Keys

+0

因此,我在添加權利後測試的第一個文件副本沒有被隔離,但現在所有後續文件副本都被隔離了!任何想法這裏發生了什麼? – Tarek

+0

@Tarek,你正在複製什麼類型的文件?這可能只是改變權利以匹配文件的問題。系統首選項>安全和隱私中選擇了哪個網守設置。 –

+0

我正在複製應用程序(.app)文件。網守設置是「Mac App Store和已確定的開發者」。 – Tarek