Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Modus (https://www.delphipraxis.net/203662-app-haengt-im-startbildschirm-fest-seit-10-3-3-ausser-man-startet-im-debugger-modus.html)

AuronTLG 9. Mär 2020 16:05

App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Modus
 
Moin,

ich habe ein Problem, was so seltsam ist, dass ich mir eher wenig Hoffnung mache, dass da wer was zu weiß, aber fragen schadet ja nicht:

Meine App auf IOS hat (höchstwahrscheinlich seit 10.3.3) das Problem, dass sie beim normalen Starten im Startbildschirm festhängt... Keine Exception, kein Hinweis von wegen aufgehängt, der Startbildschirm bleibt einfach zu sehen, ohne dass irgendetwas passiert.

Nun das Komische: Kompiliere ich die App im Debugger-Modus, egal ob in Debug- oder Releasekonfiguration, so startet sie völlig normal und lässt sich danach auch vom Smartphone aus normal aufrufen.
Kompiliere ich nicht im Debugger-Modus, hängt sie wieder im Startbildschirm fest, sowohl nach dem Kompilieren als auch bei nachfolgenden normalen Aufrufen vom Smartphone aus.

Es hat sich nichts Wesentliches geändert, schon gar nicht in OnCreates etc. Ich habe geguckt, ob irgendwo Compilerbefehle für den Debugger rumfliegen, aber ist nicht der Fall. Ich habe sogar mal die OnCreates aller Formen + die OnShow der Hauptform lahmgelegt, aber hat nichts geändert. Im App-Quelltext steht nichts drin außer den automatischen FormCreates...

Das große Problem dabei ist, dass das Problem im Debugger gar nicht erst auftritt, so dass ich praktisch keine Möglichkeit habe, nachzuvollziehen, bis wohin die App kommt und was überhaupt passiert.

Wenn irgendjemandem sowas schonmal auf IOS passiert ist, wäre ich für jeden Hinweis dankbar...

philipp.hofmann 9. Mär 2020 21:33

AW: App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Mo
 
Ich würde zwei Dinge angehen:
a) Ein filebasiertes Logging einbauen, damit man auch im Release-Modus (z.B. auch beim Kunden) sieht, wo die Anwendung was macht. Ist relativ einfach umsetzbar, ich habe auch einen Button in der App, wo per Indy-Mail die letzten 20 Logs als Mail geschickt werden können.
b) Einen Exception-Handler einbauen, der alle in der Anwendung geworfenen Exceptions fängt. Ich persönlich habe seit iOS 13.x das Gefühl, das ganz viele Exception geworfen werden, für die man nichts kann, die man aber auch getrost ignorieren kann.

Code:
procedure xxx.FormCreate(Sender: TObject);
  ...
  Application.OnException := TgoExceptionReporter.ExceptionHandler;
  TMessageManager.DefaultManager.SubscribeToMessage(TgoExceptionReportMessage, HandleExceptionReport);

procedure xxx.HandleExceptionReport(const Sender: TObject; const M: TMessage);
var Report: IgoExceptionReport;
begin
  if (finishedFormActivated and formDestroyReached) then
    exit;
  Assert(M is TgoExceptionReportMessage);
  Report := TgoExceptionReportMessage(M).Report;
  if (pos('IOAccelResourceGetResidentDataSize',report.Report)>0) then
    exit; //ignored
  if (sender<>nil) then
    mlog.error('Exception from '+sender.ToString+' (showInfo:'+TStringUtils.BoolToStr(doShowInfo)+'): '+#13#10+report.report)
  else
    mlog.error('Exception (showInfo:'+TStringUtils.BoolToStr(doShowInfo)+'): '+#13#10+report.report);
  if ((finishedFormActivated=false) or (cbConfigAutomatedSendLogs.isChecked)) then
    btDownloadSendLogsClick(Sender);
end;

Rollo62 10. Mär 2020 08:01

AW: App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Mo
 
Du könntest auch den Grijjy Logger ausprobieren.
iOS kann manchmal zickig sein, ich denke im Wesentlichen bei Permissions wenn man was machen möchte das nicht bei Apple gewünscht ist fliegt man knallhart einfach raus.
Leider gibt es da oft keine besonderen Hinweis woran es jetzt liegt, da muss man leider Suchen & Probieren.

Unterschiede Debug/Release habe ich auch schon gesehen, gibt es aber auch bei Android.
Ich sehe auch Unterschiede von Phone zu Phone, und insbesondere bei den iOS Releases.
Kann ich nicht 100% bestätigen, aber ein iOS von einem zur nächsten Version kann wieder etwas umgebaut haben, das schon lange funktionierte.
Es mach Sinn von Zeit zu Zeit bei den von Dir benutzen Apple/iOS Funktionen nach "deprecated" zu suchen.

AuronTLG 10. Mär 2020 10:26

AW: App hängt im Startbildschirm fest (seit 10.3.3), außer man startet im Debugger-Mo
 
Ich habe das mit dem Datei-basierten Log mal schnell implementiert und konnte feststellen, dass, wenn der Fehler auftritt, das Programm anscheinend nicht mal bis in die OnCreate der Hauptform kommt, obwohl das Kreieren der Haupt das Erste ist, was überhaupt passiert.

Das deckt sich damit, dass das der Fehler heute morgen zunächst gar nicht aufgetreten ist, woraufhin ich ohne Änderungen mehrmals kompiliert habe, bis die App dann schließlich wieder im Startbildschirm hing.

Ich fürchte, dass das Problem nichts mit dem Quelltext zu tun hat, sondern irgendeine obskure Embarcadero-IOS-Mischung ist...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz