Помилка випуску 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/…
Стефан

Відповіді:


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 видається двійковим файлом. Я можу прочитати імена ключів, але вони оточені купу безглуздих символів.
Brian Knoblauch

я додав цю річ у файл 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

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.