Kiedy więc konfiguruję uprawnienia w projekcie aplikacji na iPhone'a, tworzę nową Entitlements.plist i ustawiam wartość get-task-allow na false. Ale dlaczego? Co reprezentuje ten klucz?
EDYTOWAĆ
Zwróć uwagę, że jest to związane z tym pytaniem - stwierdziłem, że zmiana wartości tego klucza na true pozwoliła mi zainstalować aplikację na moim urządzeniu)
iphone
cocoa-touch
xcode
Codebeef
źródło
źródło
Możliwość debugowania aplikacji na iPhonie.
źródło
Twoja odpowiedź jest prawidłowa, ale chcę być bardziej szczegółowy, aby ludzie, którzy chcą wiedzieć, co dokładnie
get_task_allow
oznacza, mogli.get_task_allow
to uprawnienie, które umożliwia innym aplikacjom uzyskiwanie portu zadań Twojej aplikacji. Oznacza to, że jeśli jakakolwiek inna aplikacja działatask_for_pid()
z Twoim identyfikatorem procesu aplikacji, otrzymają port zadań Twojej aplikacji, aby mogli na przykład pisać i czytać rzeczy w pamięci, dzięki czemu będą mogli łatać rzeczy i modyfikować zachowanie Twoja aplikacja.Jeśli spojrzysz na to, jak działa jailbreak, zauważysz, że jedną z pierwszych rzeczy, które robią, jest
task_for_pid(mach_task_self(),0,&kernel_task);
to, żekernel_task
jest tomach_port_t
z wartością0
, dzięki czemu są w stanie dotknąć pamięci jądra.Ponieważ uprawnienia jądra nie mają
get_task_allow
uprawnień, a firma Apple usunęła nawet możliwość wykonywaniatfp0
(task_for_pid 0
), potrzebna jest poprawka.Zasadniczo, ponieważ Xcode musi dotknąć pamięci Twojej aplikacji i pracować z nią, aby ją debugować, musisz włączyć to do debugowania, ale musisz to wyłączyć, aby rozpowszechniać swoją aplikację, w przeciwnym razie każda aplikacja byłaby w stanie uzyskać port zadań.
źródło
Dla xcode 4: musisz utworzyć plik Entitlements.plist z nowego pliku. i Cele-> Ustawienia kompilacji-> Uprawnienia do podpisywania kodu musisz wpisać tutaj "Entitlements.plist"
Zrobiłem to i xcode nie ma już błędów
źródło