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


79

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

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

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

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

С Уважением,

Команда App Store

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

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

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


Похоже, Google работает над решением: groups.google.com/forum/#!category-topic/google-admob-ads-sdk/…
Стефан,

1
фиксируется на 7.11.0 firebase.google.com/docs/admob/release-notes
ayalcinkaya

Ответы:


94

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

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

<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>

2
похоже, отсутствует "NSCameraUsageDescription", хотя мой жаловался
Pranoy C

С версией 7.11.0 их SDK это больше не требуется, просто обновлено и работает.

Как ты делаешь это? Info.plist выглядит двоичным файлом. Я могу читать названия клавиш, но они окружены кучей бессмысленных символов.
Брайан Ноблауч

Я добавил эту вещь в файл plist, но все еще сталкиваюсь с той же проблемой. . . все еще получаю ту же почту после процесса сборки. .
Наман Вайшнав,

28

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


13

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

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

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

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

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


1
Ты прав. Платформа Google для AdMob и GoogleSignIn автоматически устанавливает firebase, которая использует такие разрешения, даже если приложение никогда не использует камеру. После того, как я определил NSCameraUsageDescription, он позволил мне отправить без проблем, надеясь, что приложение никогда не будет запрашивать у пользователя, поэтому он тоже не увидит текст. Но Google действительно должен это исправить, это звучит как какая-то супер-темная вещь о шпионаже через камеру или что-то в этом роде.
Pranoy C 08

9

У вас должно быть разрешение камеры в Info.Plist. перейдите к Info.plist и добавьте ниже код.

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

См. Эту ссылку: введите описание изображения здесь


5

Вот все ключи конфиденциальности, нам нужно вручную добавить их в Info.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

CallKit не требует авторизации или описания использования
user102008

3

РЕДАКТИРОВАТЬ: обратитесь к ответу выше https://stackoverflow.com/a/39476283/1634905, в котором перечислены официальные обходные пути от Google. ОБРАТИТЕ ВНИМАНИЕ, что в обходном пути отсутствует дополнительный ключ, который также потребуется:NSCameraUsageDescription

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


2

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

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


3
Ты прав. Платформы Google для AdMob и GoogleSignIn автоматически устанавливают firebase, которая использует такие разрешения, хотя приложение никогда этого не делает. После того, как я определил NSCameraUsageDescription, он позволил мне отправить без проблем, надеясь, что приложение никогда не будет запрашивать у пользователя, поэтому он тоже не увидит текст. Но Google действительно должен это исправить, это звучит как какая-то супер-темная вещь о шпионаже через камеру или что-то в этом роде.
Pranoy C 08


0

Убедитесь, что вы добавляете этот ключ, если вы используете ESRI ArcGIS.framework.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.