AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung FMX DX10 assets\internal --> Android geht nicht?

FMX DX10 assets\internal --> Android geht nicht?

Ein Thema von Harry Stahl · begonnen am 29. Dez 2015 · letzter Beitrag vom 6. Aug 2023
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 30. Dez 2015, 22:40
Ja, ganz interessant, man kann sich mal ansehen, wie die Angaben tatsächlich lauten müssten (bzw. die werden eben, falls nicht ganz passend, zurecht gestutzt).
Und man sieht wann was warum wohin kopiert wird und was die Overwrite Einstellung in der Bereitstellung aussagt. Vor allem sieht man, dass die Dateien nach dem Kopieren auf dem Device doppelt vorhanden sind.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 09:23
Die Overwrite-Einstellung ist für die Tonne, funktioniert nämlich nicht. Das habe ich schon mehrfach bei EMB bemängelt, soll aber angeblich so "by Design" sein (https://quality.embarcadero.com/browse/RSP-12630).

Unabhängig davon werden die Dateien im Deployment erst beim Starten der App umkopiert und nicht beim Installieren. Das beim Testen beachten.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 14:31
Die Overwrite Einstellung funktioniert, denn die Dateien kommen auf dem Gerät an (wenn die überschrieben werden sollen), und zwar exakt in dem Ordner den man in der Bereitstellung angegeben hat.

Dieses fett Geschriebene so lange lesen, bis man den Sinn wortwörtlich verstanden .

Wenn es nicht klappt, dann einmal laut den Pfad vorlesen, der dort in der Bereitstellung steht und dann den Pfad, wo man die Dateien erwartet. Was fällt uns auf? Die klingen ganz unterschiedlich ... warum wohl?

Die Antwort steht indirekt hier:
Unabhängig davon werden die Dateien im Deployment erst beim Starten der App umkopiert und nicht beim Installieren. Das beim Testen beachten.
Wo kommen wohl die Dateien her, die da umkopiert werden und warum werden die überhaupt umkopiert?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 15:20
Die Dateien kommen aus der APK-Datei, das ist mir schon klar. Nur wenn ich es richtig verstehe, sollten die quasi in die APK reinmappen. Sprich, wenn ich eine neue APK mit neuen Dateien ausliefere, sollten die Dateien auch neuer sein. Sind sie aber nicht. Teste es selbst. Ist übrigens unter iOS dasselbe (in meinen Augen falsche) Verhalten.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 15:39
Dann verrate mir doch mal den Remote-Pfad aus der Bereitstellung und den Pfad auf dem Device.

Dann kann ich dir auch sagen, wo du dich irrst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 16:02
Die Dateien kommen aus der APK-Datei, das ist mir schon klar. Nur wenn ich es richtig verstehe, sollten die quasi in die APK reinmappen. Sprich, wenn ich eine neue APK mit neuen Dateien ausliefere, sollten die Dateien auch neuer sein. Sind sie aber nicht. Teste es selbst. Ist übrigens unter iOS dasselbe (in meinen Augen falsche) Verhalten.
Ich habe es nochmal explizit getestet und es funktioniert exakt so wie ich es beschrieben habe. Die Datei kommt definitv auf dem Gerät in genau dem Verzeichnis an, was in der Bereitstellung angegeben wurde.

Das Problem bei dir ist, dass du eben nicht in das Verzeichnis schaust, was du in der Bereitstellung angegeben hast!
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 16:10
Ich habe es nochmal explizit getestet und es funktioniert exakt so wie ich es beschrieben habe. Die Datei kommt definitv auf dem Gerät in genau dem Verzeichnis an, was in der Bereitstellung angegeben wurde.

Das Problem bei dir ist, dass du eben nicht in das Verzeichnis schaust, was du in der Bereitstellung angegeben hast!
Und warum funktioniert es dann, wenn ich die System.StartUpCopy.pas so verändere, dass die Dateien IMMER überschrieben werden, wie es sein sollte?

Nochmal zum Verständnis:
- Version 1 der App mit einer Datei abc mit Inhalt "1" wird aus dem Appstore/über die APK installiert
- Version 2 der App mit einer Datei abc mit Inhalt "2" wird aus dem Appstore/über die APK installiert (als Update)
-> Datei abc enthält weiterhin den Text "1", sollte aber "2" sein.

Wird die Version 1 dagegen vorher deinstalliert und dann die Version 2 installiert, enthält die Datei abc wie erwartet den Text "2".

Genau dieselbe Diskussion führe ich schon seit Monaten mit denen von EMB und entweder hab ich ein massives Brett vorm Kopf oder ich bin einer der wenigen, der es versteht ;D

Geändert von bra ( 4. Jan 2016 um 16:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: FMX DX10 assets\internal --> Android geht nicht?

  Alt 4. Jan 2016, 16:57
Es gibt da eine Funktionalität, die Dateien beim Start aus einem bestimmten Verzeichnis in ein bestimmtes Verzeichnis kopiert, wenn die Datei im Ziel-Verzeichnis nicht existiert.

Das macht die unit System.StartupCopy . Als Voraussetzung muss (bei iOS) die Datei zwingend in der Bereitstellung als Remote-Pfad Startup/Documents/ bekommen.
Bei jedem anderen Remote-Pfad funktioniert das nicht.

Jetzt kommst du und sagst dass Emba da etwas falsch gemacht hat, denn du möchtest gerne diesen Remote-Pfad verwenden und da soll alles anders sein.

Wenn du nicht nass werden willst, dann geh nicht ans Wasser.
Wenn du keinen Sonnenbrand haben möchtest, dann gehe nicht in die Sonne.
Wenn du die Dateien nicht kopiert haben möchtest, dann lege diese nicht in den Remote-Pfad StartUp/Documents/ ab.
Wenn du die Dateien immer ohne wenn und aber kopiert haben möchtest (wozu eigentlich dann kopieren), dann lege diese nicht in den Remote-Pfad StartUp/Documents/ ab.

Lege diese Dateien in einen anderen Remote-Pfad und schreibe dir eine andere Routine, die diese Dateien dann nach deinem Gutdünken wo auch immer hin kopiert.
Merksatz
Dieser eine Remote-Pfad StartUp/Documents/ hat eine besondere ihm zugedachte Funktion.

Willst du dich morgen bei Emba darüber beschweren, dass man in einem Button keinen Text editieren kann? Äh, dafür ist der auch nicht gemacht => "works as designed". Ich will aber ...
Oder bei Microsoft, weil du deine Word-Dokumente am liebsten mit der Endung *.xlsx speicherst und beim Öffnen geht jetzt plötzlich Excel auf?
Oder beim Obsthändler, weil du mit der Banane deine Bierflasche nicht aufbekommst?

Wenn du den Pfad trotzdem nutzen möchtest und dir die Kopiererei egal ist (die Datei liegt doppelt auf dem Device und verbraucht doppelt so viel Speicherplatz), dann kannst du unter iOS so
Delphi-Quellcode:
TPath.Combine(
  TPath.Combine(
    TPath.GetDirectoryName( ParamStr( 0 ) ),
    'StartUp' ),
  'Documents' );
den Remote-Pfad StartUp/Documents/ erhalten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz