Masalah Bacaan Direktori Kepemilikan Sandbox Dalam Aplikasi Mac OS

Saya mengalami masalah dengan hak App Sandbox saya.

Aplikasi Mac OS saya memungkinkan pengguna membuka file XML. Ketika file tersebut diurai, ia membaca file gambar di direktori yang sama dengan file XML.

Jika App Sandbox adalah False, gambar akan dimuat dengan baik. Jika App Sandbox bernilai True, gambar gagal dimuat. (File XML masih terbaca)

App Sandbox harus Benar agar dapat dikirim ke App Store.

saya telah mencoba

com.apple.security.files.user-selected.read-write = TRUE
com.apple.security.temporary-exception.files.home-relative-path.read-only = TRUE
com.apple.security.temporary-exception.files.absolute-path.read-only = TRUE

Saya mengambil informasi ini dari dokumentasi Apple: Dokumen Hak Apple

Apakah ada cara agar saya bisa membaca kedua file tersebut? Adakah orang lain yang mengalami hal seperti ini?

Selain itu, kedua file tersebut dapat berada di mana saja tempat pengguna biasanya menyimpan file. Termasuk, Drive Jaringan.


person user-44651    schedule 21.02.2014    source sumber
comment
Saya tidak mengerti pertanyaan Anda sama sekali. Atau hanya aku yang bodoh? Apa hubungan file XML yang dipilih pengguna dengan file gambar? Apa artinya membaca file gambar? Mengakses file gambar lalu bagaimana? Apa tujuan Anda bermain-main dengan hak pengecualian sementara tersebut?   -  person El Tomato    schedule 21.02.2014
comment
Pengguna akan membuka file XML. File XML memiliki gambar yang sesuai. Itu sprite sheet dan file atlasnya. Saya dapat membaca file XML dan Gambar dengan baik tanpa App Sandbox. Jika diaktifkan, saya hanya bisa membaca file XML.   -  person user-44651    schedule 21.02.2014


Jawaban (2)


com.apple.security.files.user-selected.read-write = TRUE

ini adalah nilai Boolean dan tidak apa-apa, representasi XML dalam file hak adalah:

<key>com.apple.security.files.user-selected.read-write</key>
<true/>

2 hak lainnya bukan Boolean, tetapi array string. Jadi cara yang benar untuk mewakilinya dalam file hak adalah:

<key>com.apple.security.temporary-exception.files.home-relative-path.read-only</key>
<array>
    <string>example/local/path1/</string>
    <string>example/local/path2/</string>
</array>
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
    <string>/usr/local/bin/</string>
    <string>/usr/local/lib/</string>
</array>
person Giuseppe Amato    schedule 15.10.2019

Tidak. Agar file dapat dibaca, file tersebut harus:

  • Di lokasi yang dapat dibaca dunia, atau
  • Dalam folder yang dapat diaktifkan di preferensi hak, yaitu folder Unduhan, atau
  • Dibuka atau disimpan secara manual oleh pengguna menggunakan NSOpenPanel setelah itu dapat dilakukan secara opsional
  • Disimpan sebagai bookmark dengan cakupan keamanan, setelah itu dapat diakses secara bebas. Lihat di sini.
person SevenBits    schedule 21.02.2014
comment
Ugh. Jadi pilihan terbaik saya adalah melewati Mac App Store secara bersamaan? Pengguna saya dapat menyimpan ke tempat yang tidak langsung ada di folder standar. - person user-44651; 21.02.2014
comment
Belum tentu. Anda dapat memodifikasi kode untuk menggunakan bookmark cakupan keamanan, menggunakan sesuatu seperti NSDictionary atau Data Inti untuk mengaitkan jalur file ke bookmark cakupan keamanannya, lalu menyimpan data tersebut ke file di penampung aplikasi Anda atau NSUserDefaults untuk diremajakan di wadah aplikasi lari berikutnya. - person SevenBits; 21.02.2014
comment
Astaga. Tampaknya sedikit terlibat. Tahu ada tutorial? - person user-44651; 21.02.2014
comment
Perlu diingat bahwa bookmark dengan cakupan keamanan tetap valid setidaknya setelah file dipindahkan, sehingga menghemat beberapa pekerjaan. Untuk tutorialnya, ada di sini dan di sini dan saya telah menulis beberapa kode sumber terbuka menggunakannya. - person SevenBits; 21.02.2014
comment
Bagus! Saya menghargai bantuannya. Saya akan memeriksa semuanya. - person user-44651; 21.02.2014