![]() |
Delphi-Version: 10 Seattle
iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Hallo Forum,
meine App wurde leider von Apple abgelehnt, weil zu viel content in der iCloud abgelegt wird. Es sind (Audio-)Dateien, die nicht in die iCloud sollen. Sie sollen aber auf jeden Fall offline verfügbar sein. Das ist die Lösung von Apple: ![]() Diese Funktion sollte die "do not back up" Markierung für ausgewählte Dateien ermöglichen (da gibt es einen ![]()
Code:
Wie rufe ich diese Funktion korrekt auf? Setze ich die ins Hauptformular und könnte ich die Dateien dann einfach einzeln über FormCreate markieren?
function SetBackupFlag (AFileName: string; ABackup: boolean): boolean;
var URL: NSURL; Err: PPointer; begin URL:= TNSURL.Wrap (TNSURL.OCClass.fileURLWithPath (StrToNSStr (AFileName))); result:= URL.setResourceValue (TNSNumber.OCClass.numberWithBool(not ABackup), StrToNSStr('NSURLIsExcludedFromBackupKey'), err) and (err = nil); end; z.B. so:
Code:
Würde das schon reichen?
SetBackupFlag ( GetHomePath+PathDelim +'Documents'+PathDelim+'dateien'+PathDelim+'audio'+PathDelim + 'Fuss_01.mp3', False );
SetBackupFlag ( GetHomePath+PathDelim +'Documents'+PathDelim+'dateien'+PathDelim+'audio'+PathDelim + 'Fuss_02.mp3', False ); SetBackupFlag ( GetHomePath+PathDelim +'Documents'+PathDelim+'dateien'+PathDelim+'audio'+PathDelim + 'Fuss_03.mp3', False ); ... Im oben genannten Beitrag steht Zitat:
Jef |
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Hi,
Zitat:
Ich würde den Flag setzen sobald die Daten vom Server in die App geladen werden. Wenn Du die Daten nicht von einem Server nachlädst, würde die App aus einem Backup heraus nicht funktionieren, da die Daten ja nicht gesichert worden sind... Ich gehe davon aus, dass Du die Daten über die Bereitstellung mitlieferst. Daher Zitat:
Zitat:
Ich würde die Files nur in Documents-Dir mit "do not back up" Flag legen wenn Du diese austauschen können möchtest, ohne dass Du Deine App im Store aktualisieren möchtest... Gruß Philip |
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Hi,
danke für die Antwort. ja, ich liefere die Dateien über die Bereitstellung mit. Zitat:
Gerade steht dieser Remote-Pfad in der Bereitstellung: .\StartUp\Documents\dateien\audio - der ganze audio-Ordner soll nicht in die iCloud. Wo lege ich den neuen Ordner dann an? Und nutze ich dann immer noch die SetBackupFlag Funktion im FormCreate? Jef |
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Soweit ich die Logik verstehe liegen im Documents-Ordner die Userdaten mit Schreibrecht. Die MP3s sind ja Ressourcen und somit Programmdaten. Und Programmdate sollen wie ich das verstehe nicht in das Dokuments-Verzeichnis. Wahrscheinlich wird dieses als Userdaten in der Cloud gesichert. Wenn die MP3s als Programmdaten abgelegt sind ist es Apple doch egal wie groß die App ist... Gibt ja auch Apps mit paar Hundert MB...
|
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
|
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Ich habe eine Lösung für dieses Problem von Marco Cantu gefunden. Folgendes Video ab Minute 18:00 bis 19:20.
![]() So wie ich das verstanden habe, gibt man den Remote-Pfad in der Bereitstellung als
Delphi-Quellcode:
an und damit wird die Datei direkt ins App-Bundle gesetzt. Sie ist also weit weg von den Userdaten.
.\
Und so kann man die Datei dann laden:
Code:
Das Abspielen funktioniert jedenfalls so.
MediaPlayer1.FileName := (ExtractFilePath(paramstr(0)) + 'Test_01.mp3')
Das scheint mir jetzt die einfachste Lösung zu sein. Sehe ich das richtig so? |
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Den ersten Link von mir (
![]() AppName.app (=Root-Directory = \) : The contents of this directory are not backed up by iTunes Documents : The contents of this directory are backed up by iTunes |
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Zitat:
|
AW: iOS / iCloud - Dateien aus der Bereitstellung mit "do not back up" markieren
Ich wollte gerade ein älteres Projekt, aktualisiert mit 10.1, in den Store stellen und die App wurde wegen obigen Problem auch zurückgewiesen.
Ich habe in dem Projekt mehrere Dateien (vornehmlich Bilder bzw. eine 5mb große Datenbank) die ich als Resource gelinked habe. Die werden ja automatisch unter iOS im Documents Pfad gespeichert und das wird in die Cloud gestellt. Das ist ziemlich blöde, da ich Bilder ungern in den Formularen hinterlege, sondern lieber als Resource speichere und dann dynamisch einlese. Reicht es, wenn ich SetBackupFlag für die besagten Ressourcen beim Start ausführe - oder gibt es eine andere Methode das zu verhindern? Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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