Wenn ich meine Berechtigungen in meinem iPhone-App-Projekt einrichte, erstelle ich eine neue Entitlements.plist und setze den Wert von get-task-allow auf false. Aber wieso? Was bedeutet dieser Schlüssel?
BEARBEITEN
Beachten Sie, dass dies mit dieser Frage zusammenhängt. Ich habe festgestellt, dass ich durch Umdrehen des Werts dieses Schlüssels auf true die App auf meinem Gerät installieren konnte.
iphone
cocoa-touch
xcode
Codebeef
quelle
quelle
Die Möglichkeit, Ihre Anwendung auf dem iPhone zu debuggen.
quelle
Während Ihre Antwort richtig ist, möchte ich nur genauer darauf eingehen, damit Menschen, die wissen wollen, was genau
get_task_allow
bedeutet, dies können.get_task_allow
ist eine Berechtigung, mit der andere Apps den Task-Port Ihrer App abrufen können. Dies bedeutet, dass jede andere App, dietask_for_pid()
mit Ihrer App-Prozess-ID ausgeführt wird, den Task-Port Ihrer App erhält, sodass sie beispielsweise Dinge in den Speicher schreiben und lesen können, um Dinge zu patchen und das Verhalten von zu ändern Ihre App.Wenn Sie sich ansehen, wie ein Jailbreak funktioniert, werden Sie feststellen, dass eines der ersten Dinge, die sie tun
task_for_pid(mach_task_self(),0,&kernel_task);
,kernel_task
einmach_port_t
Wert ist0
, damit sie den Speicher des Kernels berühren können.Da Kernel-Berechtigungen keine
get_task_allow
Berechtigung haben und Apple sogar die Möglichkeit dazu entfernt hattfp0
(task_for_pid 0
) entfernt hat, benötigen sie einen Patch.Da Xcode den Speicher Ihrer App berühren und damit arbeiten muss, um sie zu debuggen, müssen Sie dies für das Debuggen aktivieren. Sie müssen dies jedoch deaktivieren, um Ihre App zu verteilen. Andernfalls kann jede App Ihre App abrufen Task-Port.
quelle
Für xcode 4: Sie müssen die Datei Entitlements.plist aus einer neuen Datei erstellen. und Ziele-> Build-Einstellungen-> Codesignatur-Berechtigungen müssen Sie hier schreiben "Entitlements.plist"
Ich habe das gemacht und xcode bekommt keinen Fehler mehr
quelle