[Ios] App wurde von SIGKILL gelöscht, wenn die Datenschutzeinstellungen geändert wurden


Answers

Dies geschieht auch bei der Verwendung von UIImagePickerController. Die Reihenfolge läuft so:

  1. Sie zeigen den UIImagePickerController. Beim ersten Mal fragt die kleine Warnung den Benutzer nach der Berechtigung zur Verwendung der Fotobibliothek. Nehmen wir an, der Benutzer sagt nein.

  2. Alles was der Benutzer mit dem Picker-Controller machen kann, ist an dieser Stelle Abbrechen, also nehmen wir an, dass das passiert.

  3. Zu einem späteren Zeitpunkt zeigen Sie den UIImagePickerController. Es enthält jetzt eine nicht anpassbare Nachricht, die besagt, dass kein Zugriff auf die Fotobibliothek besteht, der Benutzer jedoch den Zugriff in den Einstellungen aktivieren kann.

  4. Der Benutzer wechselt zu Einstellungen und ermöglicht den Zugriff auf die Fotobibliothek für diese App.

  5. Die App stürzt im Hintergrund ab. Es spielt keine Rolle, ob der Benutzer den Picker abgebrochen hat oder es angezeigt hat.

Ich habe einen Fehler bei dieser Sache eingereicht und schlage vor, dass Sie das gleiche für Ihre Situation tun. Apple hat ein neues Privacy-System in iOS 6 eingeführt und die Knackpunkte wurden noch nicht ausgearbeitet.

Question

Meine iOS App greift auf die Fotos des Nutzers mit ALAssetsLibrary . Wenn ich die Datenschutzeinstellungen für die App ändere (Einstellungen → Datenschutz → Fotos), wird die App vom System ( SIGKILL ) SIGKILL . Ist das ein Fehler?




Wenn Sie Ihre App mit dem Simulator testen. Durch Ändern der Berechtigungen der App erhalten Sie einen Haltepunkt. Sie können in der Konsole "c" eingeben, damit die App weiterhin ausgeführt wird und in den ursprünglichen Zustand zurückversetzt wird. In Ihrem echten Gerät ist dies jedoch der Fall ist nicht die Geschichte. Starten Sie einfach die App neu.




OK mein erstes Mal, um eine Antwort zu schreiben. Ich hoffe ich bekomme es richtig :)

Greifen Sie mit AssetForURL auf die Asset-Bibliothek zu: resultBlock: failureBlock:?

Wenn Sie das tun, behandeln Sie höchstwahrscheinlich nicht den Fehlerblock der ALAssetLibrary.

Du könntest etwas wie

ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access to Photo Library is Denied "
                                                            message:@"Please allow <YOUR APP NAME> to access your Photo library from Privacy Settings"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
            [alert release];
}

Wenn Ihre App keinen Zugriff auf die Fotobibliothek hat, wird der Benutzer darum gebeten.