Meine iPhone App stürzt ab, nachdem ich auf einigen Geräten Push-Benachrichtigungen erhalten habe (insbesondere ios_10.3.1)

8

Ich habe gerade herausgefunden, wie Push-Benachrichtigungen in meiner App korrekt gesendet werden. Wenn es jedoch richtig funktioniert, ist ein neuer Fehlertyp angekommen. Meine App stürzt beim Start ab, nachdem sie eine Push-Benachrichtigung erhalten hat. Ich habe auf 5 Geräten getestet und 2 davon sind aufgrund des Problems abgestürzt (beide laufen auf iOS_10.3.1). Der komische Teil ist, dass die anderen 3 Geräte auf iOS 10.2 und 9.3.1 laufen. Ich glaube nicht, dass das etwas mit OS zu tun hat.

Apple hat ein Absturzprotokoll wie dieses gesendet, aber wenn ich auf "Öffnen" im Projekt klicke, öffnet sich einfach mein Startbildschirm xib

Meine AppDelegate-Klasse APNS-Serviceaufrufteil- & gt;

%Vor%

Meine App funktioniert - & gt; Beim Start -----------------------

Eine Versions-Check-Klasse, um die Benutzerversion zu kennen. Von dort wird sie auf die Hauptseite (Homepage) umgeleitet.

Auf der Startseite - & gt;   1. Laden Sie die Ansichten.   2. Ruft einen Link asynchron auf und zeigt die Anzahl der verfügbaren Benachrichtigungen in der Nähe des Warnsymbols an (ich bin mir ziemlich sicher, dass beim Aufruf dieses Links oder beim Abrufen der Benachrichtigung kein Fehler aufgetreten ist) ------------ -------------

Hinweis: ** Wenn Sie zweimal auf das iPhone-Home-Tastenmenü tippen, wird die App im Hintergrund als geöffneter Bildschirm mit geöffneter Startseite angezeigt (nachdem sie abgestürzt ist).

** Ein 10.3.1 Gerät funktioniert ordnungsgemäß

** Wenn die App neu installiert wird, funktioniert alles gut.

    
Jeesson_7 12.05.2017, 05:39
quelle

3 Antworten

4

Wenn ich Sie richtig verstanden habe, bewegt sich Ihre App in den Hintergrund und stürzt ab, wenn Sie in den Vordergrund zurückkehren.

Dies sieht nicht wie ein Problem mit UNUserNotifications aus. Ähnlich wie die Benachrichtigung löst in diesem Fall nur den Absturz in Ihrer App aus. Stack zeigt, dass der Absturz in Ihrer App passiert. Das bedeutet, dass Sie bei der Rückkehr in den Vordergrund irgendwo auf einen Nullzeiger verweisen.
Blind rate:
Hören Sie UIApplicationDidBecomeActiveNotification oder UIApplicationWillEnterForegroundNotification?
Wenn ja, muss jede Klasse, die diese Benachrichtigungen abgehört, sich abmelden, bevor sie den Garbage Collector treffen. Guter Platz dafür ist Dealloc / Deinit.

Da Sie Swift verwenden:

%Vor%

Objective-C ARC würde folgendermaßen aussehen:

%Vor%

Wenn es keine Benachrichtigungen abgehört, dann ist es immer noch eine Referenz, die freigegeben wird. Der Grund, warum es nicht sofort abstürzt, wäre dann ein einfacher Zombie. Eine Objektinstanz, die gerade freigegeben wird, aber noch nicht zur Laufzeit auf einigen Geräten.

    
Helge Becker 15.05.2017 11:55
quelle
1
___ qstntxt ___

Ich habe gerade herausgefunden, wie Push-Benachrichtigungen in meiner App korrekt gesendet werden. Wenn es jedoch richtig funktioniert, ist ein neuer Fehlertyp angekommen. Meine App stürzt beim Start ab, nachdem sie eine Push-Benachrichtigung erhalten hat. Ich habe auf 5 Geräten getestet und 2 davon sind aufgrund des Problems abgestürzt (beide laufen auf iOS_10.3.1). Der komische Teil ist, dass die anderen 3 Geräte auf iOS 10.2 und 9.3.1 laufen. Ich glaube nicht, dass das etwas mit OS zu tun hat.

Apple hat ein Absturzprotokoll wie dieses gesendet, aber wenn ich auf "Öffnen" im Projekt klicke, öffnet sich einfach mein Startbildschirm xib

Meine AppDelegate-Klasse APNS-Serviceaufrufteil- & gt;

%Vor%

Meine App funktioniert - & gt; Beim Start -----------------------

Eine Versions-Check-Klasse, um die Benutzerversion zu kennen. Von dort wird sie auf die Hauptseite (Homepage) umgeleitet.

Auf der Startseite - & gt;   1. Laden Sie die Ansichten.   2. Ruft einen Link asynchron auf und zeigt die Anzahl der verfügbaren Benachrichtigungen in der Nähe des Warnsymbols an (ich bin mir ziemlich sicher, dass beim Aufruf dieses Links oder beim Abrufen der Benachrichtigung kein Fehler aufgetreten ist) ------------ -------------

Hinweis: ** Wenn Sie zweimal auf das iPhone-Home-Tastenmenü tippen, wird die App im Hintergrund als geöffneter Bildschirm mit geöffneter Startseite angezeigt (nachdem sie abgestürzt ist).

** Ein 10.3.1 Gerät funktioniert ordnungsgemäß

** Wenn die App neu installiert wird, funktioniert alles gut.

    
___ antwort43977792 ___
  • Dieser Code löst Ihr Problem :: -

    %Vor%
___ qstnhdr ___ Meine iPhone App stürzt ab, nachdem ich auf einigen Geräten Push-Benachrichtigungen erhalten habe (insbesondere ios_10.3.1) ___ tag123swift ___ Swift ist eine universelle Open-Source-Programmiersprache, die von Apple Inc. für ihre Plattformen und Linux entwickelt wurde. Verwenden Sie das Tag nur für Fragen zu Sprachfunktionen oder für Code in Swift. Verwenden Sie die Tags [ios], [osx], [watch-os], [tvos], [cocoa-touch] und [cocoa] für (sprachunabhängige) Fragen zu den Plattformen oder Frameworks. ___ answer43976208 ___

Bitte überprüfen Sie, was Sie hier geschrieben haben, da diese Funktion beim Empfang einer Push-Benachrichtigung aufgerufen wird. Bitte debuggen Sie dies.

func-Anwendung (_ Anwendung: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) { }

    
___ answer43978886 ___

Wenn ich Sie richtig verstanden habe, bewegt sich Ihre App in den Hintergrund und stürzt ab, wenn Sie in den Vordergrund zurückkehren.

Dies sieht nicht wie ein Problem mit UNUserNotifications aus. Ähnlich wie die Benachrichtigung löst in diesem Fall nur den Absturz in Ihrer App aus. Stack zeigt, dass der Absturz in Ihrer App passiert. Das bedeutet, dass Sie bei der Rückkehr in den Vordergrund irgendwo auf einen Nullzeiger verweisen.
Blind rate:
Hören Sie UIApplicationDidBecomeActiveNotification oder UIApplicationWillEnterForegroundNotification?
Wenn ja, muss jede Klasse, die diese Benachrichtigungen abgehört, sich abmelden, bevor sie den Garbage Collector treffen. Guter Platz dafür ist Dealloc / Deinit.

Da Sie Swift verwenden:

%Vor%

Objective-C ARC würde folgendermaßen aussehen:

%Vor%

Wenn es keine Benachrichtigungen abgehört, dann ist es immer noch eine Referenz, die freigegeben wird. Der Grund, warum es nicht sofort abstürzt, wäre dann ein einfacher Zombie. Eine Objektinstanz, die gerade freigegeben wird, aber noch nicht zur Laufzeit auf einigen Geräten.

    
___ tag123swift2 ___ Verwenden Sie dieses Tag nur für Fragen, die sich direkt auf Änderungen in Version 2.x der Apple Swift-Programmiersprache beziehen. Verwenden Sie das Tag [swift] für allgemeinere Sprachfragen oder die Tags [ios], [cocoa], [apple-watch] usw. für Fragen zur Entwicklung auf Apple-Plattformen. ___ tag123applepushnotifications ___ Der Apple Push Notification Service ist ein Service von Apple Inc., der zusammen mit iOS 3.0 gestartet wurde. APNS wird zusammen mit Mac OS X Lion Server verwendet, um Updatebenachrichtigungen an Clients zu senden, die sich über ein Konfigurationsprofil für den Empfang von Updates registriert haben Außerdem werden die Mail-, Kalender- und Kontaktdienste des Servers verwendet. Dies bedeutet, dass Geräte wie das iPhone und Anwendungen wie iCal auf dem Mac eine Benachrichtigung erhalten können ___
Sharda Prasad 15.05.2017 11:01
quelle
0

Bitte überprüfen Sie, was Sie hier geschrieben haben, da diese Funktion beim Empfang einer Push-Benachrichtigung aufgerufen wird. Bitte debuggen Sie dies.

func-Anwendung (_ Anwendung: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) { }

    
MageNative 15.05.2017 09:44
quelle