AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [Fmx, Rx10.1 Berlin] iOS App OK bei Debug, aber crasht unerklärlich im Testflight
Thema durchsuchen
Ansicht
Themen-Optionen

[Fmx, Rx10.1 Berlin] iOS App OK bei Debug, aber crasht unerklärlich im Testflight

Ein Thema von Rollo62 · begonnen am 11. Mai 2016
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#1

[Fmx, Rx10.1 Berlin] iOS App OK bei Debug, aber crasht unerklärlich im Testflight

  Alt 11. Mai 2016, 08:26
Hallo zusammen,

ich hatte jetzt schon des öfteren Probleme wenn ich meine App ausgiebig auf verschiedenen Debug-Devices getestet hatte, auch mit Apple Instruments im Profiler war alles OK.

Aber sobald ich die App in Testflight hochgeladen hatte und an die Testgeräte verschickt, da crasht die App direkt.
Hier scheint es ähnliche Probleme auch mit XCode zu geben.

Ich könnte natürlich mit AppAnalytics etwas einbauen, aber das erhöht meinen Speicherfootprint noch weiter.
Die App verbraucht schon mehr Speicher als gewünscht (ca. 100MB Dirty/ 150MB Resident), kann aber kaum
noch etwas abspecken weil ich dort grafische Elemente in Bitmaps zeichne.

Komischerweise läuft es auf älteren Handys gut, und die Crashes kommen auf den neueren, mit genügend Speicher.
Mögliche Ursachen:

LowMemory Event:
- Es scheint nicht immer LowMemory zu sein, weil ich darauf reagiere, und auch eine kurze Statusmeldung
Anzeige wenn das passieren sollte.
Ich kann bei älteren Geräten mit 512MB RAM sehen das LowMemory kommt wenn ich ein Photo mache.
Komischerweise passiert das nie wenn ich ein Bild genauso aus der Gallerie hole.
- Ich versuche auch Views erst bei Benutzung zu erzeugen, das dauert länger sollte aber Speicher schonen.
- Ich gebe Objekte nach Benutzung wieder frei, aber hier könnte es sein das Instruments die Dirty-Memory hochsetzt.
Das Dirty-Memory verstehe ich so das es zuvor benutzer Speicher ist, der wieder benutzt werden könnte.

BluetoothLE:
- Anscheinend erzeugt BluetoothLE Memory Leaks (sichtbar in Instruments), sobald ich die Characteristics verbinde.
Das mache ich genauso wie das Beispiel BLEScanner von Emba, und der auch BLEScanner im Emba-Orginal hat
dieselben Memory Leaks.
Ich vermute mal das die innerhalb des AnonymousThread durchgeführten Service und Characteristics Abfragen
irgendwo nicht sauber wieder freigegeben werden.
- Aber eigentlich sollte das kein Problem sein für die Crashes, weil
1. das crasht auch wenn die Services nicht verbunden werden, dann gibt es keine Leaks.
2. die Leaks sind nur ein paar Bytes, das sollte erstmal nicht so viel ausmachen

Segmentfehler:
- Die App ist in viele kleine Module aufgeteilt, weil ich im Anfang schonmal Segmentgrenzen-Fehler hatte.
Deshalb versuche ich die Units möglichst modular und entkoppelt anzulegen.

OnPaint-Events:
- Ich zeige ein kleines animiertes Symbol mit TRect, TCircle, TArc-Basiselementen, als Statusanzeige.
Das funktioniert auch super, aber es könnte der Grund für ein ständiges feuern der OnPaint-Events sein.
- Das Problem ist womöglich das OnPaint anscheinend immer für den ganzen Form-Canvas gefeuert wird.
Also die Statusanzeige liegt in einem Header-Layout, im Body-Layout werden aber ständig OnPaint-Events gefeuert:
Ist das normal ?
Das muss ich noch weiter checken, aber ich vermute erstmal das FMX wohl keine Teilbereiche neuzeichnet, da muss
man sich in einer OnPaint Routing selber drum kümmern.
Oder ist das ganze wie ein ständiger OnPaint Tick zu verstehen, wie in einer GameLoop ?
Jedenfalls erwarte ich im statischen Body-Frame keine OnPaints alle paar Millisekunden, nur weil im Header etwas
passiert.
Body und Header liegen natürlich nebeneinander, nicht verschachtelt. Mit Header = Top und Body = Client.

Trotzdem funktioniert ja alles super, bis auf den hohen Speicherbedarf.
Nur sobald ich ein Release einstellem möchte kracht es an Stellen die ich niemals erwarte.
Hat vielleicht jemand ähnliche Probleme mit Testflight, und ein paar Tips für mich =

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 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