# Unity での iOS 承認

> Request access to iOS device features for your application.

Apple の OS は、アプリケーションが機密情報やデバイス機能にアクセスする前に承認をリクエストすることを義務付けています。アプリケーションがデバイスのカメラ、マイク、位置情報などの機能にアクセスする必要がある場合は、必ず、デバイスのユーザーが、アプリケーションにアクセス許可を与える必要があります。

iOS デバイスでの承認リクエストの詳細については、[Apple のドキュメント](https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources) を参照してください。

アプリケーションが必要とするデバイス機能にアクセスするためには、以下を行う必要があります。

1. **info.plist** ファイルで、機能の使用目的の説明を提供します。
2. 承認リクエストを送信します。

## 機能の使用目的の説明の提供##provide-feature-usage-description

機能の使用目的の説明 ("目的の文字列" とも呼ばれます) は、アプリケーションがデバイス機能にアクセスしようとした時に iOS システムによって表示されるメッセージです。アプリケーションがアクセスを行う理由を明確に記述することが推奨されます。

機能の使用目的の説明は、[プレイヤー設定](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md) の **Configuration** セクション (メニュー: **Edit** > **Project Settings** > **Player** > **Other Settings**) で入力できます。プレイヤー設定に使用目的の説明を追加すると、それが key (キー) と value (値) のペアとして **info.plist** ファイル内に追加されます。例えば、アプリケーションがデバイスのカメラへのアクセスを必要とする場合は、プレイヤー設定にカメラの使用目的の説明を追加します。入力された説明は自動的に **[NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription/) キー**の値として **info.plist** ファイル内に表示されます。詳細については、[Apple 固有の iOS プレイヤー設定](/engine/6000.0/manual/platform-specific/iphone/getting-started/class-player-settings-ios.md#Configuration) を参照してください。

代替方法として、**info.plist** ファイルに直接、必要な機能の使用目的の説明のキーと値のペアを追加することもできます。

## 承認リクエストの送信##send-a-request-for-authorization

機能の使用目的の説明を追加したら、[Application.RequestUserAuthorization](/engine/6000.0/script-reference/unity-engine/application/request-user-authorization.md) メソッドを使用してカメラやマイクへのアクセスのリクエストを送信します。システムによって、承認リクエストに関する説明ダイアログが表示されます。

この API の使用方法を示すコードサンプルについては、[Application.RequestUserAuthorization](/engine/6000.0/script-reference/unity-engine/application/request-user-authorization.md) を参照してください。

デバイスの位置情報へのアクセスについては、[LocationService](/engine/6000.0/script-reference/unity-engine/location-service.md) API を参照してください。

リクエストの承認状況は、[Application.HasUserAuthorization](/engine/6000.0/script-reference/unity-engine/application/has-user-authorization.md) メソッドを使用して確認できます。

**ノート**: デバイスのユーザーは、デバイスの設定から、機能のアクセス許可状況をいつでも変更することができます。[Application.HasUserAuthorization](/engine/6000.0/script-reference/unity-engine/application/has-user-authorization.md) メソッドを使用して、機能にアクセスする前にその機能のアクセス許可状況を確認することができます。
