📖

ITMS-91053: Missing API declaration の問題を解決してみた

2024/04/12に公開1

ITMS-91053: Missing API declaration について

iOSでアプリの審査を提出した後に、下記のようなメールが届いたことはないでしょうか?

下記のメールを要約すると、API宣言がありませんよと言っています。
どうやら2024年5月1日以降、アプリを更新する場合はAPIを使用する理由をプライバシーマニュフェストに記載する必要があります。
今回は、NSPrivacyAccessedAPICategoryFileTimestamp と NSPrivacyAccessedAPICategoryUserDefaults APIについてプライバシーマニュフェストに記載する必要があります。

そもそもプライバシーマニュフェストってなに?

Appleが開発者に対して提供しているガイドラインの1つです。
具体的には、iOSアプリの開発者がユーザーのプライバシーをほごし、情報の収集や使用に関する透明性を提供するための指針です。
実際に、ユーザーの個人情報などを取り扱うようなAPIなどを使用している場合、そのAPIをどういった目的で使用するのかを記載していく必要があります。

実際にやってみよう

下記URLのサイトが参考になります。
今回の私のケースの場合は、下記のように修正しています。
① RunnerにApp Privacy ファイルを新規で追加
② NSPrivacyAccessedAPITypes を設定
③ NSPrivacyAccessedAPITypes という配列に2つの要素を追加
④ NSPrivacyAccessedAPIType(指摘されたAPIのタイプ)のvalueとしてNSPrivacyAccessedAPICategoryFileTimestampを設定
⑤ NSPrivacyAccessedAPITypeReasons に APIを使用する理由を設定(下記URLにその理由について記載されているので確認してください。)
⑥ NSPrivacyAccessedAPIType(指摘されたAPIのタイプ)のvalueとしてNSPrivacyAccessedAPICategoryUserDefaultsを設定
⑦ NSPrivacyAccessedAPITypeReasons に APIを使用する理由を設定(下記URLにその理由について記載されているので確認してください。)
https://mszpro.com/blog/itms-91053-ja/

NSPrivacyAccessedAPIType
アプリが使用する必要な理由 API のカテゴリを識別する文字列。指定する値は、以下のセクションにリストされている値のいずれかである必要があります。

NSPrivacyAccessedAPITypeReasons
アプリが API を使用する理由を識別する文字列の配列。指定する値は、以下のセクションでアクセスされる API タイプに関連付けられた値である必要があります。

Discussion

むっくむっく

上記画像でNSPrivacyAccessedAPITypeReasonsのvalueにDDA9.1と記載されていますが、これは間違いです。valueをタップしてAPIを使用する理由を選択するようにしてください。