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 berjalan task_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 bahwa kernel_task
adalah mach_port_t
dengan nilai 0
, sehingga mereka mampu menyentuh memori kernel.
Karena hak kernel tidak memiliki get_task_allow
hak, dan Apple bahkan telah menghapus kemungkinan melakukan tfp0
( 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.