5

Neuerstellung einer bereits veröffentlichten App mit Xcode 8.0, die PLCrashReporter, AWS Cognito/SNS und Google Analytics Frameworks verwendet.Datenschutzprobleme mit MFMailComposeViewController und nur iOS 10

Da nur auf iOS 10.x-Geräten die E-Mail-Nachricht compose vc beim Ausführen des Tests Bucket nicht mehr angezeigt wird. In der Xcode-Konsole sehe ich diese Nachrichten sofort, wenn if ([MFMailComposeViewController.canSendMail]) erreicht ist:

[MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 
[MC] Filtering mail sheet accounts for bundle ID: [MY BUNDLE ID], source account management: 1 
[MC] Result: YES 

ich einen Verweis auf diese Art von Nachrichten auf der Konsole hier: UIActivityViewController crash on iOS 10

Aber meine App nicht benutze Fotos, noch habe ich versucht, die Fotos Privatsphäre Beschreibung in den Link zu meinem info.plist für grins, aber natürlich keine Freude. Das Problem besteht weiter.

Meine App verwendet die Kamera zum Scannen von Barcodes. Und die Kamera Privatsphäre Beschreibung ist in der info.plist und ist seit letztem Jahr. Die App nutzt keine anderen Funktionen, für die Datenschutzbeschreibungen erforderlich sind.

Derselbe genaue Code und das XC8-Setup, wenn ein iOS 9.3.5-Gerät angeschlossen ist, funktionieren wie erwartet.

Wer hat das schon gesehen?

+0

Ich erhalte ähnliche Protokolle wie gut, ich bin immer noch versuchen, die Quelle davon zu charakterisieren, und die Suche google keine positiven Ergebnisse geben haben, lassen Sie uns dran bleiben. –

+0

Ja, ich konnte nicht herausfinden, was das auf iOS 10 auslöst. Nur für Grins habe ich jede einzelne Datenschutzbeschreibung hinzugefügt, funktioniert immer noch nicht, aber eliminiert zumindest diese Möglichkeiten. – drshock

Antwort

1

Also nach vielen Analysen habe ich dieses Problem letzten Wochenende endlich herausgefunden. Der Schlüssel zu wissen, dass es eigentlich nichts hatte 10 mit MFMailComposeViewController Privatsphäre Änderungen in iOS zu tun war, diese Log-Nachricht:

[MC] Result: YES 

Wenn Sie eine „NEIN“ erhalten, dann haben Sie ein Datenschutzproblem, sondern ein JA zeigen an, dass die Privatsphäre war kein Problem. Ich fand schließlich, in meinem Fall hier, dass das Problem war ein Timing-Problem in meinem Code aufgedeckt in iOS 10 ausgeführt.

Auf der gleichen genauen Gerätemodell wird getestet, eines mit iOS 10 und eines mit iOS 9.3. 5 Das Problem war, dass eine UIAlertController-Anfrage für den Fehlerpfad aufgerufen wurde, als bereits eine andere Warnung angezeigt wurde. Auf iOS 9.x und früher war es nur "Glück", dass der Erwartete gewonnen und zuerst jedes Mal präsentiert wurde. Aber auf iOS 10 ist es nicht jedes Mal passiert und das hat dann den MFMailComposeViewController in meiner Situation blockiert.

Der folgende Code war problematisch:

[self presentViewController:crashMailAlertController animated:YES completion:nil]; 

es mit diesem Code Ersetzen das Problem behoben:

[self dismissViewControllerAnimated:YES completion:^{ 
      [self presentViewController:crashMailAlertController animated:YES completion:nil]; 
     }]; 

In meinem Fall alles, was ich war zu versichern wollte, dass dieser Fehler Pfad UIAlertController immer vorgestellt Zuerst war es ein seltenes Ereignis (nur wenn ein Absturz passiert war), so dass jede vorherige Warnung zuerst gelöscht wurde, war das Ticket zum Aufrufen, so dass der MFMailComposeViewController folgen würde, wie er in die Alarmschaltfläche eingebettet war.

0

Ich erhielt dieselbe Protokollmeldung, wenn ich versuchte, den Dialog "Gemeinsame Aktivitäten" (mit UIActivityViewController) aufzurufen. Der Code funktionierte gut in ios9, aber er scheiterte in ios10 (anstelle des Dialogs bekam ich 2 Popups mit nur 'Mehr ...'). Ich habe ein einzelnes Bild in einem Array als 'activityItems: [myImage]' übergeben. Es scheint, dass das Problem darin bestand, dass dieses Argument ein Array nicht-optionaler Werte erwartet. Daher wurde das Problem durch den Wechsel zu '[meinImage!]' Gelöst.

Nicht sicher, ob dies die Lösung für das beschriebene Problem ist, aber vielleicht wird etwas ähnliches funktionieren.

0

Seine Arbeit für mich !!

if([MFMailComposeViewController canSendMail]) { 
     MFMailComposeViewController *mailCont = [[MFMailComposeViewController alloc] init]; 
     mailCont.mailComposeDelegate = self;  // Required to invoke mailComposeController when send 

     [mailCont setSubject:@"Mail Subject"]; 
     [mailCont setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; 
     [mailCont setMessageBody:@"" isHTML:NO]; 

     [self presentViewController:mailCont animated:YES completion:nil]; 
    } 
Verwandte Themen