🍏

多言語対応Appの提出時の ITMS-90683: Missing purpose string in Info.plist の解決策

2023/11/24に公開

App Store ConnectへのUploadで「Your app has one or more issues ~」と言われた

久しぶりにAppを更新してSubmitしようとApp Store ConnectへのUploadを試みた際に、下記のようなメールが送信されてきました。

各言語の InfoPlist.strings ファイルには定義がある・・・

さて、原因を探っていきます。
該当のAppはローカライズをするために、言語ごとの Info.plist の文字列ファイル (InfoPlist.strings) を作っている構成になっていました。

さらに、stringsファイルの中には該当のkeyの文言はすでに存在しました。
いままでは問題なく提出することができていたのです🤔

メールに含まれていたリンクを見てみると・・・

さて、一見設定自体におかしいところはなさそうですが、最後に案内されているリンクのドキュメントを読んでみることにしました。
すると、気になる文章が・・・

https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources

If your app supports multiple locales, in addition to providing a purpose string in the Info.plist file, localize it, and place the localized string in the InfoPlist.strings files for each locale you want to support.

Info.plist 側にもkeyの指定が必要になった

ということで、どうやら InfoPlist.strings ファイルへの記述だけでなく、 Info.plist ファイルにも同様のkeyをセットしないとバリデーションに引っ掛かるようになってしまったというのが原因のようでした。

そのため、Info.plist にも NSUserTrackingUsageDescription を追加してあげてUploadすることによって、該当のIssueが検出されなくなりました🎉

Info.plist
+	<key>NSUserTrackingUsageDescription</key>
+	<string>プライマリ言語でのその理由(もしかすると空でも良いかもです)</string>

以上です!

Discussion