スポンサーサインイン登録

← すべてのツール

エンタイトルメント解説

codesignが出力した内容か、.entitlementsファイルを貼り付けてください。読み取りはこのページ上だけで行い、どこにも送信しません。

エンタイトルメント解説

例を試す:

機能

エンタイトルメントとは、Macアプリが署名されるときに付く権限のことです。App Sandboxで動くかどうか、どのフォルダやデバイスに触れられるか、hardened runtimeのどの保護をオフにするか、どのAppleのサービスを使うかが含まれます。これらは.entitlementsファイルに書かれ、署名の中に入ります。このツールは貼り付けたテキストを読み、各エンタイトルメントとその値を見つけて、何を許可するかをやさしい言葉で説明します。公証を止めるものを最初に、次にApp Reviewや慎重なユーザーが尋ねるもの、最後にふつうのものを並べます。

実行するコマンド

codesign -d --entitlements - YourApp.app
codesign -d --entitlements - --xml YourApp.app

出荷するビルドに対して実行してください。XcodeのDebugビルドには通常com.apple.security.get-task-allowが付いていますが、Releaseビルドにはありません。ヘルパーや拡張機能を確認するときは、代わりにそのバンドルを指定します。

各結果の意味

印意味
修正公証で拒否されるか、macOSがこれを持つサードパーティ製アプリを実行しません。
見た目hardened runtimeの例外、サンドボックスの例外、サンドボックスがオフ、またはテスト用の設定です。許可されていますが、アプリに必要な場合だけ残してください。
OKApp Sandboxがオンです。
注ふつうの権限です。アプリが本当に使っているか確認してください。

出典: Apple Developer、Entitlements、App Sandbox、Hardened Runtime、Resolving common notarization issues。すべて2026年11月6日に確認しました。

仕組み

このページ上で動く、いくつかの単純なテキストのルールです。.entitlementsファイルやcodesign --xmlが持つXMLと、最近のmacOSでcodesignが出力する、角括弧つきの[Key]と[Value]の行を読みます。キー名だけを貼り付けた場合は、それらを説明します。よくあるエンタイトルメントを50個知っています。それ以外は、推測せずに「リストにない」と表示します。hardened runtimeがオンかどうかは分かりません。それはエンタイトルメントではなく署名のフラグだからです。codesign -dvの出力にあるflags=0x10000(runtime)を探してください。

質問

Macのエンタイトルメントとは何ですか?

アプリのコード署名に書き込まれた権限です。アプリがApp Sandboxで動くかどうか、どのファイル、デバイス、Appleのサービスを使えるか、hardened runtimeのどの保護をオフにするかが分かります。

アプリのエンタイトルメントはどうやって見ますか?

ターミナルで、codesign -d --entitlements - に続けてアプリのパスを指定して実行します。--xmlを付けると、同じ一覧がプロパティリストで得られます。

get-task-allowが理由で公証に拒否されたのはなぜですか?

このエンタイトルメントはデバッガのアタッチを許可するもので、XcodeがDebugビルドに追加します。Releaseビルドをアーカイブするか、署名に使うエンタイトルメントから削除して、もう一度提出してください。

MacアプリにはApp Sandboxが必要ですか?

必須なのはMac App Storeだけです。Developer IDで自分で販売するアプリは、なくても動かせますが、公証にはhardened runtimeが必要です。

貼り付けた内容はどこかに送信されますか?

いいえ。テキストはこのページ上で読み取られ、何も送信されません。

関連