ошибка выпуска iOS 10 GM при отправке приложений "приложение пытается получить доступ к конфиденциальным данным без описания использования" из-за GoogleSignIn, AdMob


Я только начал сталкиваться с этой проблемой с выпуском iOS 10 GM. Я получил электронное письмо со словами:

для обработки доставки необходимо устранить следующие проблемы:

Это приложение пытается получить доступ к конфиденциальным данным без описания использования. Информация о приложении.plist должен содержать ключ NSCameraUsageDescription со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Как только необходимые исправления были сделано, вы можете затем повторно доставить исправленный двоичный файл.

с уважением,

команда App Store

Я использую google GoogleSignIn. Я не использую Firebase, но при установке GoogleSignIn со стручками какао я увидел в журналах, что он автоматически установил Firebase.

есть ли что-то, что мы можем сделать, кроме того, чтобы определить эти ключи, поскольку мое приложение не имеет ничего общего с камерой / фотографиями и т. д., и поэтому я не хочу, чтобы пользователи думали, что мы использующий их.

Я заметил, что кто-то тоже сталкивался с этой проблемой: https://forums.developer.apple.com/thread/62229

9 78

9 ответов:

вот ссылка на полный обходной путь от Google: https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ

дополнительная информация по этой ссылке, но TL;DR версия вы должны добавить три элемента в свой plist:

<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>

в iOS 10 вам нужно добавить ключ, упомянутый ниже, если вы используете камеру или фотогалерею В своем приложенииenter image description here

в iOS 10 Apple сделала это требование, чтобы определить описание использования в информации.plist для любой функции, которая требует всплывающего окна. См.http://useyourloaf.com/blog/privacy-settings-in-ios-10/

во время бета-версии программы приложения будут аварийно завершать работу в то время, когда они будут показывать приглашение, если описание использования не было установлено.

похоже, что инструменты проверки iTunes Connect были изменены для поиска ссылок в приложении на классы, которые являются связано с объектами, связанными с разрешениями. Если нет информации.запись plist, они отклоняют двоичный файл.

Я видел это в одном из моих собственных приложений, где у меня был старый вспомогательный метод в библиотеке, которая обнаружила, существует ли камера или нет. Несмотря на то, что приложение никогда не вызывало этот метод, он был связан с моим двоичным файлом, потому что я использовал другой метод в том же файле. Это приложение не использовало камеру и поэтому не определяло информацию.вход в плист. И это было отвергнуто. Я просто удалил мой вспомогательный метод и переместил проверки в другие приложения, которые его использовали.

однако AdMob, похоже, имеет ссылки на календарь, поэтому приложение, которое у меня есть, которое использует рекламу и не использует сам календарь, не может быть отправлено. Спасибо Google!

вы должны разрешение камеры в информации.Файл plist. Гото Инфо.plist и добавить ниже код.

Key       :  Privacy - Camera Usage Description   
Value     :  $(PRODUCT_NAME) camera use

посмотреть этот код :enter image description here

вот все ключи конфиденциальности, нам нужно вручную добавить их в информацию.plist с кратким описанием.

•       Bluetooth Sharing – NSBluetoothPeripheralUsageDescription
•       Calendar – NSCalendarsUsageDescription
•       CallKit – NSVoIPUsageDescription
•       Camera – NSCameraUsageDescription
•       Contacts – NSContactsUsageDescription
•       Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription
•       HomeKit – NSHomeKitUsageDescription
•       Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription
•       Media Library – NSAppleMusicUsageDescription
•       Microphone – NSMicrophoneUsageDescription
•       Motion – NSMotionUsageDescription
•       Photos – NSPhotoLibraryUsageDescription
•       Reminders – NSRemindersUsageDescription
•       Speech Recognition – NSSpeechRecognitionUsageDescription
•       SiriKit – NSSiriUsageDescription
•       TV Provider – NSVideoSubscriberAccountUsageDescription

EDIT: пожалуйста, обратитесь к ответу выше https://stackoverflow.com/a/39476283/1634905 в котором перечислены официальные обходные пути google. Обратите внимание, что обходной путь отсутствует дополнительный ключ, который также потребуется:NSCameraUsageDescription

обходное решение, которое я использовал: рамки Google для AdMob и GoogleSignIn автоматически устанавливают firebase, который использует такие разрешения, хотя приложение никогда этого не делает. После того как я определил NSCameraUsageDescription на info.plist, это пусть я отправляю без проблем, надеясь, что приложение не будет запрашивать пользователя, чтобы они тоже не видели текст.

возможно ли, что Google Framework использует некоторые дополнительные системные рамки, которые требуют разрешения пользователя (т. е. позицию пользователя), и вы забыли добавить соответствующее описание в .plist file! Дважды проверьте это.

некоторые описания разрешений на использование стали обязательными в iOS 10.

исправлено на 7.11.0 https://firebase.google.com/docs/admob/release-notes

убедитесь, что вы обновили SDK

убедитесь, что вы добавляете этот ключ, если вы ArcGIS ESRI.рамки.