AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS App in TestFlight gibt out of memory Fehler auf iPhone
Thema durchsuchen
Ansicht
Themen-Optionen

iOS App in TestFlight gibt out of memory Fehler auf iPhone

Ein Thema von Rollo62 · begonnen am 19. Jun 2015 · letzter Beitrag vom 30. Jun 2015
Antwort Antwort
Rollo62

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

iOS App in TestFlight gibt out of memory Fehler auf iPhone

  Alt 19. Jun 2015, 14:14
Hallo zusammen,

ich Teste mit Rad XE8 Pro und XCode6.3.2 eine App im AppStore.
- Debug: funkltioniert direkt auf dem Gerät super
- Testflight: Bei verschiedenen Testern habe ich das out of memory aufpoppen sehen.
Also da geht es wohl um RAM.

Habe mit dem Tool SystemActivityMonitor auf den betreffenden Phones getestet, es war aber immer noch freier Speicher da.


Könnte das an Testflight liegen, denn sonst sehe ich keinen besonderen Unterschied zu den Phones (natürlich 5S und 6, verschiedene Modelle).
Aber Systool zeigt eigentlich immer Speicher an.

In den Apple Docs finde ich das iOS keinen Speicher auslagert (wenn ich das richtig verstehe), stattdessen sendet das System eine Message an die App und erwartet Kooperation.
https://developer.apple.com/library/...d/20001881-SW1
https://developer.apple.com/library/...outMemory.html

Dazu müsste die App auf eines der folgenden Ereignisse reagieren:
Zitat:
Implement the applicationDidReceiveMemoryWarning: method of your application delegate.

Override the didReceiveMemoryWarning method in your custom UIViewController subclass.

Register to receive the UIApplicationDidReceiveMemoryWarningNotification notification.
Wie bekomme ich denn solche Ereignisse in Fmx registiert ?
Vielleicht hat ja schonmal jemand damit Erfahrungen gamacht.

Rollo

Geändert von Rollo62 (19. Jun 2015 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#2

AW: iOS App in TestFlight gibt out of memory Fehler auf iPhone

  Alt 30. Jun 2015, 14:45
Hallo zusammen,

ich habe auf iOS 8.3 die AppEvents wie folgt abgefangen, insbesondere das LowMemory Event:

Code:
function TFormMain.EvOnAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
var
 iDo : Integer;

begin

  Result := True;

  case AAppEvent of
    TApplicationEvent.FinishedLaunching  : begin
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnFinished launching');
                                              {$ENDIF _X_USE_DEBUG}
                                            end; // Ihre Anwendung wurde aufgerufen.
    TApplicationEvent.BecameActive       : begin
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnBecameActive');
                                              {$ENDIF _X_USE_DEBUG}
                                            end; // Ihre Anwendung hat den Fokus erhalten.
    TApplicationEvent.WillBecomeInactive : begin
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnWillBecomeInactive');
                                              {$ENDIF _X_USE_DEBUG}
                                            end; // Ihre Anwendung verliert gerade den Fokus.
    TApplicationEvent.EnteredBackground  : begin
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnEnteredBackgound');
                                              {$ENDIF _X_USE_DEBUG}
                                            end; // Der Benutzer verwendet die Anwendung nicht mehr, aber Ihre Anwendung wird noch im Hintergrund ausgeführt.
    TApplicationEvent.WillBecomeForeground: begin
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnWillBecomeForeground');
                                              {$ENDIF _X_USE_DEBUG}
                                            end; // Der Benutzer verwendet Ihre Anwendung jetzt, die sich zuvor im Hintergrund befunden hat.
    TApplicationEvent.WillTerminate      : begin // Der Benutzer beendet Ihre Anwendung.
                                              iDo := 0;
                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('OnWillTerminate');
                                              {$ENDIF _X_USE_DEBUG}
                                            end;
    TApplicationEvent.LowMemory          : begin // Must Cleanup
                                              iDo := 1;
                                              if Assigned(FFrmGroundplan) and
                                                 (TabControlMain.ActiveTab = TabItemViewGroundPlan) then
                                              begin
                                                TabControlMain.ActiveTab := TabItemViewProjects;
                                              end;
                                              if Assigned(FFrmSketchPlan) and
                                                 (TabControlMain.ActiveTab = TabItemViewSketch) then
                                              begin
                                                TabControlMain.ActiveTab := TabItemViewProjects;
                                              end;
                                              if Assigned(FFrmImagePlan) and
                                                 (TabControlMain.ActiveTab = TabItemViewImage) then
                                              begin
                                                TabControlMain.ActiveTab := TabItemViewProjects;
                                              end;

                                              {$IFDEF _X_USE_DEBUG}
                                                 DoLogDebugInfo('Low memory handled');
                                              {$ENDIF _X_USE_DEBUG}

                                            end;
    TApplicationEvent.TimeChange         : ; // Die Zeit wurde signifikant geändert.
                                               // Dieses Ereignis kann beispielsweise beim Tageswechsel oder beim Wechseln in oder aus der Sommerzeit auftreten.
    TApplicationEvent.OpenURL            : ; // Ihre Anwendung hat eine Anforderung zum Öffnen eines URL empfangen.
//  Anwendungsereignisse dieses Typs sind normalerweise einem Kontext zugeordnet.
//  Dieser Kontext ist eine Instanz der iOS-spezifischen Klasse TiOSOpenApplicationContext, die die folgenden schreibgeschützten Eigenschaften bereitstellt:
//  TiOSOpenApplicationContext.SourceApp ist ein String, der die Bundle-ID der Anwendung enthält, von der Ihre Anwendung die Anforderung zum Öffnen des URL erhalten hat.
//  TiOSOpenApplicationContext.URL ist der zu öffnende URL, entweder eine Netzwerkressource oder eine Datei.
//  TiOSOpenApplicationContext.Context ist ein Zeiger auf ein Eigenschaftslistenobjekt, das gegebenenfalls zusätzliche Informationen bereitstellen kann.
//  In der iOS API reference documentation finden Sie weitere Informationen.
  end;


end;
es sollten beim Debug-Modus alle Log-Mesages in dem Logger angezeigt werden, auch die LowMemory.
Die echte LowMemory sollte dann eigentlich nicht, zumindest nicht sofort, kommen.
Die AppEvents funktionieren auch wirklich, weil die Messages im Logger ankommen und angezeigt werden.

Aber ich bekomme auf manchen (nicht allen) Testgeräten trotzdem eine LowMemory-Meldung vom System,
diese sind dann auch nicht in den Logs eingetragen, obwohl z.B. "OnBecameActive" als letztes drinsteht.

Es scheint also das die AppEvents auf manchen Geräten "umgangen" werden kann.
(und ich rede hier von iPhone 5S und 6 Plus, also keine allzu alten Brötchen).

Hat das schonmal jemand gesehen, und vielleicht einen Tip 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 20:23 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