Jadi, ketika saya menyiapkan hak saya di proyek aplikasi iPhone, saya membuat Entitlements.plist baru, dan menyetel nilai get-task-allow ke false. Tapi kenapa? Apa yang diwakili oleh kunci ini?
EDIT
Perhatikan ini terkait dengan pertanyaan ini - Saya menemukan bahwa membalik nilai kunci ini ke true memungkinkan saya untuk menginstal aplikasi di perangkat saya)
iphone
cocoa-touch
xcode
Codebeef
sumber
sumber
Kemampuan untuk men-debug aplikasi Anda di iPhone.
sumber
Meskipun jawaban Anda benar, saya hanya ingin lebih spesifik tentang ini supaya orang yang ingin tahu apa sebenarnya
get_task_allow
artinya bisa.get_task_allow
adalah hak yang memungkinkan aplikasi lain mendapatkan port tugas aplikasi Anda. Ini berarti bahwa jika ada aplikasi lain yang berjalantask_for_pid()
dengan ID proses aplikasi Anda, mereka akan mendapatkan port tugas aplikasi Anda sehingga mereka dapat melakukan hal-hal seperti misalnya menulis dan membaca hal-hal di memori, oleh karena itu dapat menambal dan mengubah perilaku aplikasi Anda.Jika anda melihat bagaimana sebuah karya jailbreak, Anda akan melihat salah satu hal pertama yang mereka lakukan adalah mendapatkan
task_for_pid(mach_task_self(),0,&kernel_task);
adalah bahwakernel_task
adalahmach_port_t
dengan nilai0
, sehingga mereka mampu menyentuh memori kernel.Karena hak kernel tidak memiliki
get_task_allow
hak, dan Apple bahkan telah menghapus kemungkinan melakukantfp0
(task_for_pid 0
), mereka membutuhkan tambalan.Jadi pada dasarnya karena Xcode perlu menyentuh memori aplikasi Anda dan bekerja dengannya untuk men-debugnya, Anda harus mengaktifkan ini untuk debugging, tetapi Anda harus menonaktifkan ini untuk mendistribusikan aplikasi Anda atau aplikasi apa pun bisa mendapatkan port tugas.
sumber
Untuk xcode 4: Anda harus membuat file Entitlements.plist dari file baru. dan Target-> membangun Pengaturan-> Penandatanganan Kode Hak Anda harus menulis di sini "Entitlements.plist"
Saya melakukan ini dan xcode tidak mendapatkan kesalahan lagi
sumber