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

Pranoy C
źródło
Wygląda na to, że Google pracuje nad rozwiązaniem: groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ ...
Stefan
1
naprawiono na 7.11.0 firebase.google.com/docs/admob/release-notes
ayalcinkaya

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>
kevcol
źródło
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

Pritesh
źródło
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!

Geoff Hackworth
źródło
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

Kirit Modi
źródło
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
Kiran K.
źródło
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.

Pranoy C
źródło
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.

Niedźwiedź grizzly
źródło
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.

Marius
źródło