Xcodeでget-task-allowは何をしますか?


95

そのため、iPhoneアプリプロジェクトで資格を設定するときに、新しいEntitlements.plistを作成し、get-task-allowの値をfalseに設定します。しかし、なぜ?このキーは何を表していますか?

編集する

これはこの質問に関連していることに注意してください-このキーの値をtrueにフリップすることで、デバイスにアプリをインストールできることがわかりました)

回答:


165

ADCのこのスレッドから:

get-task-allowは、アプリケーションにサインインすると、他のプロセス(デバッガーなど)をアプリに接続できます。ディストリビューションプロファイルではこの値をオフにする必要がありますが、開発プロファイルではこの値をオンにする必要があります(そうしないと、Xcodeを起動してアプリにアタッチすることはできません)。


2
それで、プロジェクトには2つのEntitlements.plistファイルが必要です。1つはこの値がYESに設定され、デバッグプロファイルをターゲットにし、もう1つはNOを指定して配布プロファイルをターゲットにします。
Greg Maletic、2011

2
気にしないで、私自身の質問を解決しました。Entitlements.plistをデバッグビルド設定から除外しても、問題はありません。
Greg Maletic、2011

1
しかし、開発者プロファイルを使用してデバッグモードでプロジェクトにEntitlements.plistが含まれていなくてもデバッグできました。誰かがこれを説明してくれませんか?
spd 2012

1
デバッグのデフォルトはtrue、リリースのデフォルトはfalseです。falseにすると、デバッグが無効になります。
Lazy Coder

1
ただし、配布構成は通常「リリース」から派生します。これは、AdHocにFALSEを指定する必要がないことを意味しませんか?(またはその問題については、資格ファイルをすべて持っていますか?)
Nicolas Miari

13

iPhoneでアプリケーションをデバッグする機能。


1
面白い!それだけの場合は、値をfalseにフリップすると、デバイスにアプリをインストールできなくなるのはなぜでしょうか。(関連するSOの質問:stackoverflow.com/questions/997884/…
Codebeef 2009年

それはそれがすることです...しかし、それが実際にあなたがそれを行うことを可能にすることは何をしますか?
ライアンデッツェル2009年

1
Codebeefのようなより多くの情報が含まれている場合、この回答は大幅に改善される可能性があります。
Jadar

@Codebeefこれは、Xcodeが本質的に課している制限ではなく、課している制限だと思います。
saagarjha 2018年

7

あなたの答えは正しいですが、正確に何をget_task_allow意味するのか知りたい人ができるように、私はこれについてより具体的にしたいだけです。

get_task_allow他のアプリがアプリのタスクポートを取得できるようにする資格です。これは、他のアプリがtask_for_pid()アプリプロセスIDで実行されている場合、アプリのタスクポートを取得するため、メモリ上での書き込みや読み取りなどを実行できるため、パッチを適用して動作を変更できることを意味しますあなたのアプリ。

あなたはどのように脱獄の作品を見てみましょう場合、あなたは彼らが最初のものの一つが取得され気づくtask_for_pid(mach_task_self(),0,&kernel_task);ことがあることkernel_taskであるmach_port_t値を持つ0彼らは、カーネルのメモリに触れることができますので、。

カーネルの資格には資格がなくget_task_allow、Appleはtfp0task_for_pid 0)を実行する可能性さえ排除しているため、パッチが必要です。

したがって、基本的にXcodeはアプリのメモリに触れてそれを操作してデバッグする必要があるので、デバッグのためにこれを有効にする必要がありますが、アプリを配布するためにこれを無効にする必要があります。タスクポート。


-7

xcode 4の場合:新しいファイルからEntitlements.plistファイルを作成する必要があります。およびターゲット->ビルド設定->コード署名エンタイトルメントここに書き込む必要があります "Entitlements.plist"

私はこれをしました、そして、xcodeはもうエラーを得ません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.