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 28. Apr 2016
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Sir Rufo
Sir Rufo

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

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
 
#12

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
 
#13

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
 
#14

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
 
#15

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
 
#16

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
bra

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

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

  Alt 4. Jan 2016, 17:16
Ich weiss zwar nicht, wieso du mich da jetzt gleich so anmachst aber egal... auf dem Niveau hab ich keine Lust, mich hier weiter runtermachen zu lassen.

Versuche doch bitte mal unter Remote Pfad bei Android irgendwas anderes als assets\* anzugeben. Diese Dateien landen überhaupt nicht in der APK, wie sollen die also bitte dann auf dem Gerät ankommen?

Bist du sicher, dass DU verstehst, was hier passiert?

Geändert von bra ( 4. Jan 2016 um 17:29 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
 
#18

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

  Alt 4. Jan 2016, 18:44
Ja, bin ich. Meine Dateien sind immer da, wo ich die haben will.

Manchmal muss man sich dazu auch mit der Doku der Plattformen auseinandersetzen.
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
 
#19

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

  Alt 5. Jan 2016, 09:16
Kannst du nicht mal ein Beispiel geben, was für einen Pfad du da für Android angegeben hast? Wenn ich irgendwas anderes als assets\... angebe, landet die Dateien NICHT in der APK, wird ergo auch nie auf dem Gerät erscheinen.

Das Problem ist halt, dass ich diese Frage schon mehrfach gestellt habe (auch hier im Forum vor einigen Monaten) und mir darauf niemand eine vernünftige Antwort gibt, außer "schau in die Doku". Das bringt mir nichts.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.434 Beiträge
 
Delphi 11 Alexandria
 
#20

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

  Alt 6. Jan 2016, 17:56
Zitat:
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.
Das ist schön und gut, aber wie Bra schon sagte, so klar ist das auf den Plattformen nicht.

Was is denn der kleinste gemeinsame Nenner an Verzeichnissen, hat sich da schonmal jemand ein System aufgebaut ?

Ich bin mittlerweile soweit zurückgerudert das ich möglichst alles unter dem User Dokuments Verzeichnis ablege, weil auch das Shared Dokuments
bei den meisten Plattformen Probleme macht, die Appdata holder sowieso.

Allerdings kommt es auch auf den Datentyp und Verwendung an, denn Apple kann ja eine App abweisen wenn man "wiedererzeugbare" Daten unter Dokuments ablegt, weil sie keine Dubletten beim Sync haben wollen.

Ich würde gerne die richtigen Verzeichnisse für die folgenden Aufgaben wissen:

Von der App erzeugte, einmalige Daten --> ab in Dokuments --> kann Synchronisiert werden --> alles OK
Von der App gedownloaded --> wohin damit ? --> Apple sagt ich könnte mir die im Zweifel ja nochmal downloaden --> schlechtes Bauchgefühl
Von der App interne Daten, z.B. INI Files, bearbeitete Bilder oder Sqlite.db --> wohin damit ? --> Shared Dokuments ? --> könnte Apple meckern
Wie von Bra der Fall das eine Datei beim Update überschrieben werden soll --> wohin damit ? --> muss ich wohl selber was für schreiben ?
Wie bei StartUpCopy --> wofür sollte ich das überhaupt benutzen ? --> Initiale Dateien, die dann nicht mehr benutzt werden --> doppelter Speicher
etc. etc.

Die Emba Docs zu den Plattformen helfen nur bedingt weiter, denn es gibt nicht immer Zugriff auch wenn es so sein sollte.
Ich habe es mittlerweile fast aufgegeben das zu versuchen zu optimieren und arbeite wieder an der eigentlichen Appfunktion,
Aber ich habe immer ein ungutes Gefühl das irgendwann mal wieder etwas nicht gespeichert wird.

Wie macht ihr das denn um ohne Zugriffsprobleme durchs Leben zu gehen, was ist der "kleinste gemeinsame Folder" ?

Rollo

P.S.:
Zitat:
Oder beim Obsthändler, weil du mit der Banane deine Bierflasche nicht aufbekommst?
Ich machs genau umgekehrt, klappt immer hervorragend
  Mit Zitat antworten Zitat
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 00:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf