Błąd wersji GM na iOS 10 podczas przesyłania aplikacji „próbuje uzyskać dostęp do poufnych danych bez opisu użytkowania” z powodu GoogleSignIn, AdMob


79

Właśnie zacząłem mierzyć się z tym problemem w wydaniu iOS 10 GM. Otrzymałem wiadomość e-mail o treści:

Aby zrealizować dostawę, należy poprawić następujące problemy:

Ta aplikacja próbuje uzyskać dostęp do danych wrażliwych na prywatność bez opisu użytkowania. Aplikacja Info.plist musi zawierać klucz NSCameraUsageDescription z wartością ciągu wyjaśniającą użytkownikowi, w jaki sposób aplikacja wykorzystuje te dane.

Po wprowadzeniu wymaganych poprawek możesz ponownie dostarczyć poprawiony plik binarny.

Pozdrowienia,

Zespół App Store

Używam google GoogleSignIn. Nie używam Firebase, ale podczas instalowania GoogleSignIn ze strąkami kakao widziałem w dziennikach, że automatycznie zainstalował Firebase.

Czy jest coś, co możemy zrobić poza koniecznością zdefiniowania tych kluczy, ponieważ moja aplikacja nie ma nic wspólnego z aparatem / zdjęciami itp., Dlatego nie chcę, aby użytkownicy myśleli, że ich używamy.

Zauważyłem, że ktoś inny również napotkał ten problem: https://forums.developer.apple.com/thread/62229


Wygląda na to, że Google pracuje nad rozwiązaniem: groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ ...
Stefan

Odpowiedzi:


94

Oto link do pełnego obejścia od Google: https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ

Więcej informacji pod tym linkiem, ale wersja TL; DR polega na tym, że musisz dodać trzy elementy do swojej listy:

<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
wydaje się, że brakuje tu „NSCameraUsageDescription”, na który mój narzekał
Pranoy C

W wersji 7.11.0 ich SDK nie jest to już wymagane, tylko zaktualizowane i działa.

Jak Ty to robisz? Info.plist wydaje się być plikiem binarnym. Potrafię odczytać nazwy kluczy, ale są one otoczone stosami bzdurnych znaków.
Brian Knoblauch

Dodałem to do pliku plist, ale nadal mam ten sam problem. . . nadal otrzymuję tę samą pocztę po procesie kompilacji. .
Naman Vaishnav

28

w iOS 10 musisz dodać klucz wymieniony na poniższym obrazku, jeśli używasz aparatu lub galerii zdjęć w swojej aplikacjiwprowadź opis obrazu tutaj


13

W iOS 10 Apple postawiło jako wymóg zdefiniowania opisu użycia w Info.plist dla każdej funkcji, która wymaga wyskakującego okienka. Zobacz http://useyourloaf.com/blog/privacy-settings-in-ios-10/

Podczas programu beta aplikacje ulegały awarii w momencie wyświetlania monitu, jeśli opis użytkowania nie został ustawiony.

Wygląda na to, że narzędzia sprawdzania poprawności iTunes Connect zostały zmienione, aby szukać w aplikacji odniesień do klas skojarzonych z obiektami związanymi z uprawnieniami. Jeśli nie ma wpisu Info.plist, odrzucają plik binarny.

Widziałem to w jednej z moich własnych aplikacji, w której miałem starą metodę pomocniczą w bibliotece, która wykryła, czy kamera istnieje, czy nie. Mimo że aplikacja nigdy nie wywołała tej metody, była łączona z moim plikiem binarnym, ponieważ użyłem innej metody w tym samym pliku. Ta aplikacja nie korzystała z aparatu, więc nie definiowała wpisu Info.plist. I został odrzucony. Po prostu usunąłem metodę pomocniczą i przeniosłem czeki do innych aplikacji, które z niej korzystały.

Jednak wydaje się, że AdMob zawiera odniesienia do Kalendarza, więc moja aplikacja, która korzysta z reklam i nie korzysta z samego Kalendarza, nie może zostać przesłana. Dzięki Google!


1
Masz rację. Struktury Google dla AdMob i GoogleSignIn automatycznie instalują Firebase, który korzysta z takich uprawnień, mimo że aplikacja nigdy nie używa aparatu. Po zdefiniowaniu NSCameraUsageDescription, pozwolił mi przesłać bez problemu, mając nadzieję, że aplikacja nigdy nie monituje użytkownika, więc również nie zobaczy tekstu. Ale Google naprawdę powinno to naprawić, to brzmi jak jakieś podejrzane szpiegowanie przez kamerę czy coś.
Pranoy C

9

Musisz mieć pozwolenie Camera na Info.Plist. goto Info.plist i dodaj poniższy kod.

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

Zobacz ten ref: wprowadź opis obrazu tutaj


5

Oto wszystkie klucze prywatności, musimy ręcznie dodać je do Info.plist z krótkim opisem.

•       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 nie wymaga autoryzacji ani opisu użytkowania
użytkownik102008

3

EDYTUJ: zapoznaj się z odpowiedzią powyżej https://stackoverflow.com/a/39476283/1634905, która zawiera oficjalne obejście Google. UWAGA, w obejściu brakuje dodatkowego klucza, który będzie również wymagany:NSCameraUsageDescription

Obejście problemu, którego użyłem: frameworki Google dla AdMob i GoogleSignIn automatycznie instalują firebase, który korzysta z takich uprawnień, mimo że aplikacja nigdy tego nie robi. Po zdefiniowaniu NSCameraUsageDescriptionw info.plist, pozwoliłem mi przesłać bez problemu, mając nadzieję, że aplikacja nigdy nie monituje użytkownika, więc również nie zobaczy tekstu.


2

Czy to możliwe, że Google Framework używa jakiejś dodatkowej struktury systemu, która wymaga uprawnień użytkownika (tj. Pozycji użytkownika) i zapomniałeś dodać powiązany opis w pliku .plist! Sprawdź to dokładnie.

Niektóre opisy uprawnień do użytkowania stały się obowiązkowe w iOS 10.


3
Masz rację. Struktury Google dla AdMob i GoogleSignIn automatycznie instalują Firebase, który korzysta z takich uprawnień, mimo że aplikacja nigdy tego nie robi. Po zdefiniowaniu NSCameraUsageDescription, pozwolił mi przesłać bez problemu, mając nadzieję, że aplikacja nigdy nie monituje użytkownika, więc również nie zobaczy tekstu. Ale Google naprawdę powinno to naprawić, to brzmi jak jakieś podejrzane szpiegowanie przez kamerę czy coś.
Pranoy C


0

Upewnij się, że dodajesz ten klucz, jeśli jesteś ArcGIS.framework firmy ESRI.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.