AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ios9

Ein Thema von CHackbart · begonnen am 16. Sep 2015 · letzter Beitrag vom 22. Nov 2015
Antwort Antwort
Seite 11 von 11   « Erste     91011   
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#101

AW: Ios9

  Alt 23. Okt 2015, 21:04
Das Problem ist, dass die App schon abstürzt bevor sie dazu kommt meinen Code auszuführen (also noch beim "booten"):

http://enlightme.info/crash.png

Ich habe den Fehler jetzt eingrenzen können:

Es handelt sich um einen Bug im Zusammenhang mit TPushEvents. Dieses Feature scheint unter Android & iOS32-Bit im Release Mode zum Crash zu führen.

https://quality.embarcadero.com/browse/RSP-12658

Tolle Wurst, da bleibt mir wohl nichts anderes, als abzuwarten bis Embarcadero einen Fix dafür erstellt.

Geändert von cipher (23. Okt 2015 um 22:40 Uhr)
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#102

AW: Ios9

  Alt 27. Okt 2015, 11:26
Einen Fehler bzgl. iOSDevice32/Release habe ich schon gemeldet
https://quality.embarcadero.com/browse/RSP-12408

Du solltest aber irgendeine Fehlermeldung bekommen, bzw. deine App mit ein wenig Logging bestücken damit du sehen kannst wo der Fehler herkommt.
Das war ein guter Tipp von dir! TPushEvents scheint auch die Supports-Methode aus System.SysUtils zu nutzen, die bei Android/Release und iOS32/Release zum Absturz führt.

Als Workaround habe ich die System.SysUtils.pas in meinen Projektpfad aufgenommen und folgende Methode:

Code:
function Supports(const Instance: IInterface; const IID: TGUID; out Intf): Boolean; overload;
so verändert:

Code:
function Supports(const Instance: IInterface; IID: TGUID; out Intf): Boolean; overload;
Warum das dann funktioniert, weiß ich aber nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#103

AW: Ios9

  Alt 27. Okt 2015, 12:03
Ich vermute es liegt dann an dem const der TGUID. IIRC wird ohne const der record zuerst kopiert und dann an die Funktion übergeben. Mit const wird nur eine reference zu dem record auf den stack gepushed. Das heißt du pushed eine reference auf den stack, während dort eigentlich der record direkt erwartet wird. Innerhalb der Funktion wird dann wohl auf invaliden Speicher zugegriffen.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#104

AW: Ios9

  Alt 28. Okt 2015, 09:44
Ich vermute es liegt dann an dem const der TGUID. IIRC wird ohne const der record zuerst kopiert und dann an die Funktion übergeben. Mit const wird nur eine reference zu dem record auf den stack gepushed. Das heißt du pushed eine reference auf den stack, während dort eigentlich der record direkt erwartet wird. Innerhalb der Funktion wird dann wohl auf invaliden Speicher zugegriffen.
Ja, das könnte sein, aber die IID wird in dieser Methode auch nur als const weitergegeben:

Code:
function Supports(const Instance: IInterface; IID: TGUID; out Intf): Boolean;
begin
  Result := (Instance <> nil) and (Instance.QueryInterface(IID, Intf) = 0);
end;
Definition der QueryInterface:

Code:
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#105

AW: Ios9

  Alt 28. Okt 2015, 11:08
SO war das nicht gemeint, was ich meinte war, dass vllt in der deklaration steht, dass da ein const hingehört, aber aus irgendeinem grund im vorkompilierten Delphisource der implementierungsteil kein const verwendet. Gemeint hatte ich also einen unterschied zwischen Interface und Implementation(wobei bei implementation der tatsächlich kompilierte source interessant wäre).

Das sind aber nur Vermutungen.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#106

AW: Ios9

  Alt 22. Nov 2015, 22:45
Nur zur Info:

Mit dem 10 Seattle Update 1 sind alle Probleme, die ich hatte beseitigt. 👍
Push Messages gehen. Und sogar die Transport Security wird für iOS gesetzt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 11 von 11   « Erste     91011   


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 07:11 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