2016-11-30 1 views
0

In meiner Anwendung verwende ich, um die Standortdaten abzurufen und sie an den Server zu senden. Die App funktionierte in früheren Versionen ziemlich gut und stürzt in iOS 10 ab. Ich verwende Xcode 8. Die folgende Meldung wird im Protokoll angezeigt.App stürzt beim Anfordern des Standorts in iOs ab 10

Couldn't find the "com.apple.private.externalaccessory.showallaccessories" entitlement 
[MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/delta/Library/Developer/CoreSimulator/Devices/EE3BD084-BA73-44F6-AD95-BE49BBE838AC/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 
[MC] Reading from private effective user settings. 

so wie kann ich das beheben.

+4

Haben Sie ** NSLocationWhenInUseUsageDescription ** und ** NSLocationAlwaysUsageDescription ** Keys in der .plist-Datei hinzugefügt? – Wolverine

+2

Haben Sie NSLocationWhenInUseUsageDescription und NSLocationAlwaysUsageDescription in Ihrem Plist hinzugefügt? – Rajat

+1

@Rajat +1 für den gleichen Gedanken – Wolverine

Antwort

3

In iOS 10, wenn Sie auf private Daten zugreifen möchten, ist eine wesentliche Änderung, die Sie im Voraus erklären müssen oder Ihre App wird abstürzen.

Wenn Sie eines der Rahmen unter

Kontakte, Kalender, Erinnerungen, Fotos, Bluetooth-Sharing, Mikrofon, Kamera, Standort, Gesundheit, HomeKit, Medienbibliothek, Bewegung, CallKit, aufgeführt sind, mit Spracherkennung, Sirikit

Sie haben die Beschreibung in Info.plist

Hier erklären ist die vollständige Liste der Schlüssel von Info.plist, die Sie für iOS10 deklarieren müssen.

<!-- Photo Library --> 
    <key>NSPhotoLibraryUsageDescription</key> 
    <string>$(PRODUCT_NAME) photo use</string> 

    <!-- Camera --> 
    <key>NSCameraUsageDescription</key> 
    <string>$(PRODUCT_NAME) camera use</string> 

    <!-- Microphone --> 
    <key>NSMicrophoneUsageDescription</key> 
    <string>$(PRODUCT_NAME) microphone use</string> 

    <!-- Location --> 
    <key>NSLocationUsageDescription</key> 
    <string>$(PRODUCT_NAME) location use</string> 

    <!-- Location When In Use --> 
    <key>NSLocationWhenInUseUsageDescription</key> 
    <string>$(PRODUCT_NAME) location use</string> 

    <!-- Location Always --> 
    <key>NSLocationAlwaysUsageDescription</key> 
    <string>$(PRODUCT_NAME) always uses location </string> 

    <!-- Calendars --> 
    <key>NSCalendarsUsageDescription</key> 
    <string>$(PRODUCT_NAME) calendar events</string> 

    <!-- Reminders --> 
    <key>NSRemindersUsageDescription</key> 
    <string>$(PRODUCT_NAME) reminder use</string> 

    <!-- Contacts --> 
    <key>NSContactsUsageDescription</key> 
    <string>$(PRODUCT_NAME) contact use</string> 

    <!-- Motion --> 
    <key>NSMotionUsageDescription</key> 
    <string>$(PRODUCT_NAME) motion use</string> 

    <!-- Health Update --> 
    <key>NSHealthUpdateUsageDescription</key> 
    <string>$(PRODUCT_NAME) heath update use</string> 

    <!-- Health Share --> 
    <key>NSHealthShareUsageDescription</key> 
    <string>$(PRODUCT_NAME) heath share use</string> 

    <!-- Bluetooth Peripheral --> 
    <key>NSBluetoothPeripheralUsageDescription</key> 
    <string>$(PRODUCT_NAME) Bluetooth Peripheral use</string> 

    <!-- Media Library --> 
    <key>NSAppleMusicUsageDescription</key> 
    <string>$(PRODUCT_NAME) media library use</string> 

    <!-- Siri --> 
    <key>NSSiriUsageDescription</key> 
    <string>$(PRODUCT_NAME) siri use</string> 

    <!-- HomeKit --> 
    <key>NSHomeKitUsageDescription</key> 
    <string>$(PRODUCT_NAME) home kit use</string> 

    <!-- SpeechRecognition --> 
    <key>NSSpeechRecognitionUsageDescription</key> 
    <string>$(PRODUCT_NAME) speech use</string> 

    <!-- VideoSubscriber --> 
    <key>NSVideoSubscriberAccountUsageDescription</key> 
    <string>$(PRODUCT_NAME) tvProvider use</string> 

Auch

Apps, die mit einem externen Zubehör kommunizieren können müssen die Protokolle, die sie in ihrer Info.plist Datei unterstützen erklären.

Um die Protokolle Ihre App unterstützt, erklären Sie muss den UISupportedExternalAccessoryProtocols Schlüssel in Ihrer App Info.plist Datei. Dieser Schlüssel enthält ein Array von Zeichenfolgen, die die von Ihrer App unterstützten Kommunikationsprotokolle identifizieren.

Hoffe es hilft .. !!

1

Gehe zu App Info.Pliste Datei und fügte den Datenschutzschlüssel entsprechend Ihrer Anforderung hinzu.

Ort: Key: Privacy - Lage Immer Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Standort Verwendung

Key: Datenschutz - Lage bei Gebrauch Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Standort Verwenden Sie

Wenn Sie die oben genannten Datenschutzschlüssel hinzugefügt und weiterhin die App abstürzen. Aktivieren Sie dann die entsprechenden "Capabilities"

Beispiel: Wenn Sie mit "Verwendet Bluettoth LE Zubehör"

Projekt -> Funktionen -> Hintergrund-Modi -> Bluetooth LE Zubehör verwendet wird.

Verwandte Themen