AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenaustausch mit Mobilgeräten

Ein Thema von Union · begonnen am 12. Nov 2013 · letzter Beitrag vom 15. Nov 2013
 
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#24

AW: Datenaustausch mit Mobilgeräten

  Alt 15. Nov 2013, 08:51
So, ich habe nun herausgefunden wie das mit der iCloud geht. Basis ist dieser Beitrag von Daniel.

Abweichend von den push-Notifications muß die entitlements wie folgt aussehen, wobei die XXXXXXXXXX mit der Developer-Program-ID und das com.domain.appname durch den CFBundleIdentifier ersetzt werden müssen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
   <key>application-identifier</key>
   <string>XXXXXXXXXX.com.domain.appname</string>
  <key>com.apple.developer.ubiquity-container-identifiers</key>
  <array>
     <string>XXXXXXXXXX.com.domain.appname</string>
  </array>   
   <key>get-task-allow</key>
   <true/>
</dict>
</plist>
Die Cloud stellt sich dann als Verzeichnis dar, dessen Namen man so ermittelt:
Delphi-Quellcode:
function GetiCloudPath : string;
var
  nsFile: NSFileManager;
  URL: NSURL;
begin
  nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager);
  URL := nsFile.URLForUbiquityContainerIdentifier(nil);
  if (URL <> nil) then
    Result := UTF8ToString(URL.path.UTF8String)
  else
    Result := '';
end;
Man kann Dateien in diesen Pfad einfach hineinkopieren:
Delphi-Quellcode:
procedure SaveToICloud(AFileName);
var
  ACloudPath : string;
begin
  ACloudPath := GetiCloudPath;
  if ACloudPath <> 'then
  begin
    TFile.Copy(AFileName, IncludeTrailingPathDelimiter(ACloudPath)+ExtractFileName(AFileName));
  end;
end;
Der Beweis, dass es funktioniert, kann man auf dem Mac in den iCloud-Einstellungen erbringen. Wenn man dort auf "Verwalten" geht, wird eine so kopierte Datei angezeigt. Auch in den iOS-Einstellungen auf dem Gerät zeigt sich das unter "Speicher & Backup > Speicher verwalten". Dort wird der vergebene app-name (aus dem Bundle-Identifier) angezeigt und der belegte Speicherplatz.

Nachteil, der das (jedenfalls zum Datenaustausch) ziemlich unbrauchbar macht: Ohne Tricks kann man auf diese Dateien nicht zugreifen, da sie app-spezifisch verwaltet werden.

Der Trick ist, eine app auf dem Mac zu starten, die iCloud-Zugriff hat. Dadurch wird ein Dienst gestartet, der den iCloud Ordner in der User-Library einbindet.

Die Daten findet man dann unter
Code:
~/Library/Mobile Documents/XXXXXXXXXX~com~domain~appname
wobei wieder die gleichen Ersetzungen gemacht werden müssen wie bei den Entitlements.

Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
 


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 04:26 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