アーカイブしたアプリをApp Store Connectにアップロードした際、アップロード成功後、Appleから「App Store Connect: Your app [ アプリ名 ] (Apple ID: [ Apple ID ] Version: [Version ] Build: [ Build ]) has one or more issues」というタイトルのメールが届いたのでその時の対処方法をお伝えします。
目次 非表示
結論
カメラとフォトライブラリを使用していたので
Info.plistにNSPhotoLibraryUsageDescriptionとNSCameraUsageDescriptionを追加する
appleから来たメール
Dear Developer,
We identified one or more issues with a recent delivery for your app, [ アプリ名 ]. Please correct the following issues, then upload again.
ITMS-90683: Missing purpose string in Info.plist – Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
ITMS-90683: Missing purpose string in Info.plist – Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSCameraUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
Though you are not required to fix the following issues, we wanted to make you aware of them:
ITMS-90078: Missing Push Notification Entitlement – Your app appears to register with the Apple Push Notification service, but the app signature’s entitlements do not include the ‘aps-environment’ entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the ‘aps-environment’ entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor’s Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.
Best regards,
The App Store Team
開発者様へ
あなたのアプリ [ アプリ名 ] の最近の配信で、1つ以上の問題が確認されました。以下の問題を修正し、再度アップロードしてください。
ITMS-90683: Info.plist に目的の文字列がない – あなたのアプリのコードは、機密性の高いユーザーデータにアクセスする 1 つ以上の API を参照しています。アプリの Info.plist ファイルには、NSPhotoLibraryUsageDescription キーと、アプリがデータを必要とする理由を明確にかつ完全に説明する、ユーザー向けの目的文字列が含まれている必要があります。外部ライブラリやSDKを使用している場合、目的文字列を必要とするAPIを参照している可能性があります。アプリはこれらのAPIを使用しないかもしれませんが、それでも目的文字列は必要です。詳細については、https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources を参照してください。
ITMS-90683: ITMS-90683: Info.plist に目的の文字列がない – あなたのアプリのコードは、機密性の高いユーザーデータにアクセスする 1 つ以上の API を参照しています。アプリのInfo.plistファイルには、NSCameraUsageDescriptionキーと、アプリがデータを必要とする理由を明確かつ完全に説明するユーザー向けの目的文字列が含まれている必要があります。外部ライブラリやSDKを使用している場合、目的文字列を必要とするAPIを参照している可能性があります。アプリはこれらのAPIを使用しないかもしれませんが、それでも目的文字列は必要です。詳細については、https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources を参照してください。
以下の問題については、修正する必要はありませんが、注意を喚起します。
ITMS-90078: Missing Push Notification Entitlement – あなたのアプリは Apple Push Notification サービスに登録されているように見えますが、アプリ署名の権限に ‘aps-environment’ 権限が含まれていません。アプリが Apple Push Notification サービスを使用する場合、App ID が Provisioning Portal で Push Notification に対して有効になっていることを確認し、「aps-environment」資格を含む Distribution provisioning profile でアプリに署名した後に再送信してください。Xcodeは、ビルド時にプロビジョニングプロファイルからaps-environment権限を自動的にコピーしません。この動作は意図的なものです。このエンタイトルメントを使用するには、プロジェクトエディターの Capabilities ペインで Push Notification を有効にするか、エンタイトルメントファイルに手動でエンタイトルメントを追加します。詳細については、https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1 を参照してください。
よろしくお願いします。
App Storeチーム
ITMS-90683: Missing purpose string in Info.plistが2つあります。
これは下記がなかったの原因です。
- フォトライブラリーの使用をユーザーに許可してもらうためのキー(NSPhotoLibraryUsageDescription)
- カメラの使用をユーザーに許可してもらうためのキー(NSCameraUsageDescription)
そのため、plistにキーを追加する
まとめ
今回、カメラとフォトライブラリを使用していたのでplistにキーを追加する必要があります。
ただ、私の場合、plistにキーは追加していたのですがValueを入力してませんでした。
おわりに
最後までご覧いただきありがとうございます。
アプリをリリースするまでに色々なエラーがあります。
時間をかけて調べたけど意外と簡単だったりすることが多いです。
また何かありましたら共有させていただきます。