Lösung des Problems
Wenn Sie den bereitgestellten Code im Github-Link sehen, wird der startupReasonReporter.startupReason
basierend auf den previousRunInfo
Daten aktualisiert, wenn er mit startupReasonReporter
instanziiert wird (oder in Ihrem Fall), wenn die App das nächste Mal ausgeführt wird.initWithPreviousRunDidCrash
previousRunInfo
runInfo
Sie müssen die folgende öffentliche Methode verwenden, um die runInfo
Instanz zu erhalten, die ist
/**
* Returns the prior run information stored to disk at the given directory URL.
* @param directoryURL The directory to use to to store the startup reason data.
* @return the previous startup reason data if it was present on disk, or empty startup reason object.
*/
+ (nonnull instancetype)priorRunAtDirectoryURL:(nullable NSURL *)directoryURL;
Die Art und Weise, wie Sie initialisieren runInfo
, scheint falsch zu sein. Sie müssen etwas wie folgt tun:
id<UBApplicationStartupReasonReporterPriorRunInfoProtocol> runInfo = [[UBApplicationStartupReasonReporterPriorRunInfo] alloc] priorRunAtDirectoryURL:<yourDirectoryURL>];
Diese Delegaten aktualisieren bei jedem Aufruf nur die für die aktuelle Ausführung, die in einer Datei im Verzeichnis gespeichert wird, das Sie im obigen Aufruf angegeben haben applicationDidBecomeActive
, applicationWillResignActive
und die Daten werden aus dieser Datei abgerufen, wenn die App das nächste Mal ausgeführt wird.applicationWillTerminate
runInfo
<yourDirectoryURL>
startupReasonReporter.startupReason
Jedes Mal, wenn Sie die App ausführen, werden die vorherigen Laufdaten abgerufen und startupReasonReporter.startupReason
basierend auf den verfügbaren Daten in eingestelltpreviousRunInfo
Keine Kommentare:
Kommentar veröffentlichen