Einstellungen Standalone – Übergabe an iPhone

Startseite Foren Deutsches LiveCode-Forum Einstellungen Standalone – Übergabe an iPhone

Schlagwörter: , ,

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #3329
      Wolli
      Teilnehmer

        Hallo,

        ich habe ein kleines Problem:

        Beim Übertragen der APP auf mein iPhone werden die zusätzlichen Dateien und Ordner, wie Bilder, Datenbank, DatePicker (Stack) nicht mit übertragen. Vermutlich ein Fehler von mir bei den Standalone-Settings. In den Reiter „Copy Files“ habe ich diese eingetragen, indem ich sie im Explorer ausgewählt habe.

        Es wird dann z.B. folgendes angezeigt:
        Bilder/*
        datepicker/*
        Datenbank-SQLite/daten.db

        Die Ordner, bzw. Dateien werden aber scheinbar nicht auf mein iPhone übertragen.

        Kann mir jemand helfen?

        Herzliche Grüße und ein schönes Weihnachtsfest

        Wolli

      • #3331
        gfz
        Teilnehmer

          Hi,
          ich habe zwar keinen Mac oder iPhone aber Haukes Buch ?. Auf Seite 346 rät er dazu „COPY REFERENCED FILES“ inaktiv zu lassen. Hast Du das berücksichtigt? Außerdem gibt es zum Buch noch beim Verlag noch Zusatzinformation zum Download – eventuell ist da auch was speziell für iPhone dabei. Darf ich fragen welchen Mac du benutzt bzw. welche CPU und wieviel Arbeitsspeicher du zur Verfügung hast?
          LG
          Georg

        • #3335
          Klaus Major
          Administrator

            Hi Wolli,

            Die Ordner, bzw. Dateien werden aber scheinbar nicht auf mein iPhone übertragen.

            woran merkst Du, daß sie nicht vorhanden sein sollen?
            Mit welchem Skript greifst Du darauf zu?

            Alle Dateien und Ordner, die Du so Deiner Standalone hinzugefügt hast, findest Du dann hier:
            specialfolderpath(„resources“)

            Und nicht vergessen, iOS (und Android) habe ein CASE-sensitives Betriebsystem: bilder <> Bilder

            Gruß

            Klaus

          • #3364
            Wolli
            Teilnehmer

              Hallo Klaus,

              vielen Dank für die schnelle Antwort.

              Wenn die APP auf dem iPhone ist, kann ich sie ausführen, aber es sind keine Bilder vorhanden, ebenso fehlt der DatePicker und beim Oeffnen/Schreiben von Daten erhalte ich die Meldung, dass die Datenbank nicht gefunden wurde. Im Simulator funktioniert alles einwandfrei.

              Das mit dem specialfolderpath(„resources“) habe ich mir schon gedacht – ist für mich noch Neuland – damit muss ich mich wohl noch auseinandersetzen! Kannst Du mir dazu Hilfeseiten nennen?

              Herzliche Grüße und ein schönes Weihnachtsfest.

            • #3366
              Klaus Major
              Administrator

                Hi Wolli,

                ich hate ein ellenlange Replik geschrieben, aber bekomme IMMER nur eine Fehlermeldung beim Absenden?
                Werde Hauke mal fragen, ob das Not tut! 🙂

                Schick mir mal deine Emailadresse, dann schicke ich Dir das per Mail: klaus AT major-k.de

                Liebe Grüße

                Klaus

              • #3368
                Klaus Major
                Administrator

                  So, habe das blöde große Oe eliminiert, auf ein Neues… 🙂
                  ——————————————————————
                  Hi Wolli,

                  klingt, als würdest Du absolute Pfade zu Deinen Bildern angegeben haben!?
                  Sprich, der ganze Pfad zu Deinem Bild auf Deiner Festplatte MIT dem Namen der Festplatte.

                  Daher findet der Simulator auch die Bilder, er liegt ja auf Deiner Festplatte innerhalb von Xcode, aber das Gerät nicht, weil es Deine Festplatte nicht kennt.

                  Verwende relative Pfadnamen und alles wird gut 🙂
                  Und das geht so…

                  Ich nehme an der Ordner Bilder liegt im selben Ordner wie der Stack, zumindest sollte er das.
                  Dann wählst Du Dein Bild aus und Du sieht den absoluten Pfad, hier auf meinem Rechner:
                  /Users/klaus/Desktop/Teststack/Bilder/bad2.JPG

                  Der Stack mit dem Bild liegt in diesem Ordner:
                  /Users/klaus/Desktop/Teststack

                  Nun loescht Du das Absolute aus dem Pfad, bis nur der Ordner Bilder und der Dateiname übrig bleibt:
                  Bilder/bad2.JPG

                  Et voila, Bild immer noch zu sehen, weil der Stack im selben Ordner wie der Ordner „Bilder“ liegt und er so nun, trotz fehlender kompletter Adresse, relativ (zum Stack) gefunden wird.

                  Soweit klar? 🙂

                  Die Engine bzw. Standalone übersetzt diesen relativen Pfad automatisch zu -> specialfolderpath(„resources“), ohne daß wir das machen müssen, und das Bild ist auch auf dem Device zu sehen.

                  Datepicker:
                  Den oder die Stack(s) in dem Ordner rufst Du folgendermaßen auf:

                  put specialfolderpath(„resources“) & „/name_deines_stack.livecode“ into tStack
                  go stack tStack
                  ### Nicht vergessen, wir haben innerhalb des Application Packages KEINE Schreibrechte, Du kannst so also diese datepicker Stack(s) nicht speichern!

                  Dito für die Datenbank, die darfst Du da noch nicht einmal Oeffnen!
                  Die musst Du erst in den DOCUMENTS Ornder kopieren und von dort Oeffnen, dort haben wir Schreibrechte!

                  Das solltest Du beim Oeffnen Deines Stacks machen, also „on openstack“.

                  ...
                  ## 1. Zunächst alle benOetigten Pfade zusammenbasteln:
                  ## Pfad zur Datenbank Datei innerhalb des App Package:
                  put specialfolderpath("resources") & "/Datenbank-SQLite/daten.db" into tSourceDB
                  
                  ## Pfad zum DOCUMENTS Ordner des Users:
                  put specialfolderpath("documents") & "/Datenbank-SQLite/daten.db" into tTargetDB
                  
                  ## Prüfen, ob die App wirklich zum allerersten Mal startet und nur dann die DB kopieren!
                  if there is not a file tTargetDB then
                   ## Datei noch nicht vorhanden, also rüberkopieren:
                   put url("binfile:" & tSourceDB) into url("binfile:" & tTargetDB)
                  end if
                  ## fertig.
                  ...

                  Beim Oeffnen der DB mit revopendatabase übergibst Du dann das als Dateipfad:

                  ...
                  put specialfolderpath("resources") & "/Datenbank-SQLite/daten.db" int tDB
                  put revOpenDatabase("sqlite",tDB) into tDBID
                  ...

                  Ja, so, weit, so gut erst mal, viel Spaß, bei Fragen fragen! 🙂

                  Gruß

                  Klaus

                • #3370
                  Klaus Major
                  Administrator

                    Korrektur zu DATEPICKER!

                    Datepicker:
                    Den oder die Stack(s) in dem Ordner rufst Du folgendermaßen auf:

                    put specialfolderpath(„resources“) & „/datepicker/name_deines_stack.livecode“ into tStack
                    go stack tStack

                  • #3380
                    Klaus Major
                    Administrator

                      Und noch eine Korrektur, es muss auf dem Device natürlich die kopierte Datanbankdatei im DOCUMENTS Ordner geöffnet werden!

                      ...
                      put specialfolderpath("documents") & "/Datenbank-SQLite/daten.db" int tDB
                      put revOpenDatabase("sqlite",tDB) into tDBID
                      ...
                  Ansicht von 7 Antwort-Themen
                  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.