Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: macOS Dateizugriff verweigert bei FMX App-Store Apps

  Alt 28. Jun 2018, 23:43
Komisch ist nur das es via SaveDialog funktioniert - nur "direkt" nicht.
Wie machen andere Apps Sicherungen auf USB-Sticks zum Beispiel??

/Werner
Apple will, dass Programme auf Dateien außerhalb der Sandbox nur über die Öffnen- und Speichern-Dialoge zugreifen können. Das gehört zum Sicherheitskonzept der Sandbox (so kann also kein Virus unbemerkt auf Dateien zugreifen).

Wenn Du aber einmal auf einen Ordner / eine Datei außerhalb der Sandbox mit den genannten Dialogen erlaubtermaßen Zugriff genommen hast, kannst Du zu diesem Zeitpunkt einen persistenten Zugriff auf diese Resourcen einrichten und zwar über App-Scoped Bookmarks. Bei erneutem Zugriff auf die Datei (auch nach einem Programmneustart) kannst Du darüber dann direkt auf diese Resourcen Zugriff nehmen, ohne über die Dialoge gehen zu müssen.

Das ist allerdings kein ganz so einfaches Thema. In meinem FireMonkey-Buch zu XE7 gibt es dazu ein eigenes Kapitel (Abschnitt 6) und im Anhang ist eine Sandbox-Unit abgedruckt, welche die Öffnen- und Speicherndialoge so anpasst, dass man zum benötigten Zeitpunkt eine Bookmark anlegen kann (das geht nämlich nur, wenn die System-Dialoge gerade ausgeführt werden).

Ich kann die Unit aus rechtlichen Gründen hier nicht veröffentlichen, auch weiß ich nicht, ob die Technik mit dem aktuellen Delphi oder den aktuellen MAC OS noch funktioniert (sollte aber eigentlich). Denn ich selber vertreibe keine MAC-Apps mehr über den Appstore, dass ist mir echt zu zeitaufwändig und das Sandboxing hat mir zuviele Einschränkungen (mein Herz brennt da im Moment eher für Linux). Aber evtl. gibt es ja hier jemandem im Forum, der die Unit noch mit aktuellem Delphi / Mac OS im Einsatz hat und kann was dazu sagen (bei Bedarf kann man das XE7-Buch noch bei Amazon erwerben, noch günstiger als Kindle-Version).

Nur der Vollständigkeit halber sei erwähnt, dass man auch direkt über Entitlements-Keys, die man NUR im Appstore anfordern kann, auch Lese- und Schreibrechte außerhalb der Sandbox bekommen kann. Aber die bekommt man wohl nur wenn man ein Unternehmen von Weltrang ist und einen wirklich guten Grund vorweisen kann. Für mein CopyBack-Programm (Datensicherungsprogramm) war das damals jedenfalls kein ausreichender Grund, um diese Rechte zu erhalten, so hatte ich es eben über die Appscope-Bookmark Lösung gemacht (und die App dann über ein paar Jahre auch im Store gehabt).

Geändert von Harry Stahl (28. Jun 2018 um 23:57 Uhr)
  Mit Zitat antworten Zitat