サードパーティライブラリにユーザデータにアクセスするコードが含まれていてリジェクトされる件

  • 39
    いいね
  • 2
    コメント

Xcode8GMでビルドしたアプリをsubmitしたところ以下の様なメールが届き、iTCからsubmitしたバイナリが削除されました。

Title: iTunes Connect: Your app "<app name>" has one or more issues

Dear developer,
We have discovered one or more issues with your recent delivery for "<app name>". To process your delivery, the following issues must be corrected:

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

Once these issues have been corrected, you can then redeliver the corrected binary.

Regards,

The App Store team

iOS10からユーザデータにアクセスする際の説明文をplistに組み込むことが必須になりましたが(参考)、私のアプリではそのようなコードを書いた覚えがありません。

原因はサードパーティのライブラリにありました。nmコマンドを使って各ライブラリのバイナリをひとつずつチェックしてみたところ、以下が該当しました。

nm Pods/Google-Mobile-Ads-SDK/GoogleMobileAdsSdkiOS-7.5.0/GoogleMobileAds.framework/GoogleMobileAds  | grep OBJC_CLASS | grep EKEvent
                 U _OBJC_CLASS_$_EKEvent
                 U _OBJC_CLASS_$_EKEventEditViewController
                 U _OBJC_CLASS_$_EKEventStore
                 U _OBJC_CLASS_$_EKEventStore

nm Pods/FBAudienceNetwork/FBAudienceNetwork.framework/FBAudienceNetwork | grep UIImagePickerController
                 U _OBJC_CLASS_$_UIImagePickerController

今回の場合は、上記の広告系ライブラリにカレンダーやフォトライブラリにアクセスするようなコードが含まれていたようです。

とれる対応としては以下のいずれかでしょう。
- plistにまっとうな理由を書く
- ライブラリを使うのをやめる

Appleからの公式見解も出ています。
https://forums.developer.apple.com/message/176579#176579

前者に対応する場合、ライブラリ提供元に問い合わせて、どのような用途で上記コードを使っているかを問い合わせる必要がありそうです(そのうちアナウンスがあるかもしれません)。

当然上記以外にも該当するライブラリはおそらくたくさんあるはずなので、どこかで共有できればよいですね。

2016/09/09 13:07追記
AdMobは来週あたりに見解を出すそうです
https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/y-IxErXawxg