AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi macOS Dateizugriff verweigert bei FMX App-Store Apps
Thema durchsuchen
Ansicht
Themen-Optionen

macOS Dateizugriff verweigert bei FMX App-Store Apps

Ein Thema von wjjw · begonnen am 28. Jun 2018 · letzter Beitrag vom 28. Jun 2018
Antwort Antwort
Benutzerbild von wjjw
wjjw

Registriert seit: 3. Aug 2017
Ort: Wiener Neustadt, Österreich
75 Beiträge
 
Delphi 12 Athens
 
#1

macOS Dateizugriff verweigert bei FMX App-Store Apps

  Alt 28. Jun 2018, 08:25
Hallo!

Habe das Problem das wenn eine macOS FMX-App für den App-Store den Zugriff auf diverse Verzeichnis verweigert.
Wenn ich die gleiche App mit Konfiguration "Normal" kompiliere und starte kann ich auf alle Verzeichnisse zugreifen.
Habe natürlich unter "Berechtigungsliste" alle relevanten Optionen markiert (z.b. Lese-/Schreibzugriff auf ...).
Komisch ist auch das ich im Download-Verzeichnis problemlos schreiben/kopieren kann.
Ich brauche eine Funktion die die Daten meiner App auf einen USB-Stick sichert.
Hat jemand ähnliche Probleme?

procedure TForm1.Btn_CopyClick(Sender: TObject);
var fn1, fn2: String;
begin
// Funktioniert NICHT!
fn1 := Von.Text; // "/Users/user1/Downloads/bild.png"
fn2 := Nach.Text; // "/Volumes/USB-Stick/bild.png"
TFile.Copy(fn1, fn2); // Fehler - Permission denied

// Funktioniert!
if SaveDialog1.Execute then
begin
fn1 := Von.Text; // "/Users/user1/Downloads/bild.png"
fn2 := SaveDialog1.FileName; // "/Volumes/USB-Stick/bild.png"
TFile.Copy(fn1, fn2); // KEIN Fehler
end;
end;


/Werner
Werner Weiß

Geändert von wjjw (28. Jun 2018 um 08:48 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: macOS Dateizugriff verweigert bei FMX App-Store Apps

  Alt 28. Jun 2018, 08:51
AppStore-Applikationen sind "sandboxed". Deshalb gelten für diese gewisse Beschränkungen, welche für "normale" Anwendungen nicht bestehen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von wjjw
wjjw

Registriert seit: 3. Aug 2017
Ort: Wiener Neustadt, Österreich
75 Beiträge
 
Delphi 12 Athens
 
#3

AW: macOS Dateizugriff verweigert bei FMX App-Store Apps

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

/Werner
Werner Weiß
  Mit Zitat antworten Zitat
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
Antwort Antwort


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 02:28 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