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
źródło
Odpowiedzi:
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>
źródło
w iOS 10 musisz dodać klucz wymieniony na poniższym obrazku, jeśli używasz aparatu lub galerii zdjęć w swojej aplikacji
źródło
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!
źródło
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:
źródło
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
źródło
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
NSCameraUsageDescription
winfo.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.źródło
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.
źródło
Naprawiono w 7.11.0 https://firebase.google.com/docs/admob/release-notes
Pamiętaj, aby zaktualizować SDK
źródło
Upewnij się, że dodajesz ten klucz, jeśli jesteś ArcGIS.framework firmy ESRI.
źródło