2012-09-20 6 views
36

Ich habe eine App, die die Kontakte des iPhone verwendet. Mit iOS 6 wird der Benutzer beim ersten Versuch zur Kontaktaufnahme aufgefordert. Zu diesem Zeitpunkt kann der Benutzer "Zulassen" oder "Nicht zulassen" drücken. Das Problem liegt vor, wenn der Benutzer die App hinterlässt und dann zu Einstellungen-> Datenschutz-> Kontakte navigiert, um die Datenschutzeinstellungen für Kontakte für meine App zu ändern. Sobald sie gedrückt wird, kann ich auf der Konsole sehen, dass meine App:Toggle Datenschutzeinstellungen werden die App

Applikation 'UIKitApplication: com.myApp' verlassen abnorm mit Signal 9: Getötet: 9

Ich kann nicht finden jede Informationen dazu in der Apple-Dokumentation. Kennt jemand einen Weg, dies zu verhindern? Ist das wie geplant? Oder ist das ein Apple Bug?

+2

Ich bekomme ähnliches Verhalten auf den Kontakten. Ich habe mit den Datenschutzeinstellungen für das Foto experimentiert, und meine App stürzt auch ab, wenn diese Option aktiviert ist, während sich die App im Hintergrund befindet. Ziehen Sie in Erwägung, Ihrer Frage "iphone" addressbook '' objecc 'zusätzliche Tags hinzuzufügen, die die Sichtbarkeit erhöhen könnten. – Mike

+0

Kommt mir auch so vor. Dies scheint wie ein Apple Bug. –

+1

Apple Bug Reporter Problem ID: 12360315 – rocky

Antwort

60

das OS sendet ein SIGKILL, die kein Absturz - Apple-Sitzung auf Privatsphäre in iOS6 sagt:

  • Wenn Berechtigungsänderungen, App verlassen wird.
  • Hintergrund Ablauf Ablaufhandler wird aufgerufen, wenn registriert
  • iOS dann tötet die Anwendung.

WWDC 2012 Session Videos: Privacy Support in iOS and OS X

Expiration Handler: beginBackgroundTaskWithExpirationHandler

Es um diese keine Möglichkeit gibt, kann ich sehen.

+2

Das ist unglücklich – Maurizio

+0

Danke für den Beitrag – rocky

+4

App beendet auch in iOS7 Hinweis: wenn jedoch die App auf dem Gerät normalerweise - nicht in Xcode Debugging - die Die App wird automatisch neu gestartet, nachdem sich die Berechtigungen geändert haben. Der Benutzer sieht nicht, dass ein Absturz aufgetreten ist (vorausgesetzt, dass die App beim Neustart alles korrekt verarbeitet.) – leanne

2

Nach dem Testen von beginBackgroundTaskWithExpirationHandler kann ich sagen, dass der Ablaufbehandlungsblock nicht aufgerufen wird, nachdem die Berechtigungseinstellungen wie in der Apple-Präsentation angegeben geändert wurden.