AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Datei in iCloud/iDrive speichern und lesen

Datei in iCloud/iDrive speichern und lesen

Ein Thema von Harry Stahl · begonnen am 9. Mär 2019 · letzter Beitrag vom 21. Nov 2020
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Harry Stahl
Harry Stahl

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

Datei in iCloud/iDrive speichern und lesen

  Alt 9. Mär 2019, 12:53
Vorab: iCloud und iDrive ist das was unterschiedliches oder nur zwei Bezeichnungen für eine Sache?

Zum Thema iCloud habe ich hier im Forum nur einen Thread aus dem Jahre 2013 gefunden:

https://www.delphipraxis.net/1236029-post24.html

Sieht so aus, als ob ich immer noch selber manuell die .entitlements Datei bearbeiten muss?
Oder gibt es inzwischen eine Einstellung in Delphi?

In dem verlinkten Beitrag auf Daniels Blog zu den Push-Notifications stand der Hinweis, dass dies nur auf dem Gerät, aber nicht auf dem Simulator getestet werden kann.

Kann ich denn "normale" iCloud-Funktionen (bzw. iDrive) wie Datei speichern und laden auch nur auf dem Gerät testen oder geht das auch auf dem Simulator?

Benötige ich, um die iCloud/iDrive in meiner App nutzen zu können irgendwelchen speziellen Zertifikate, etc.?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.882 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 9. Mär 2019, 13:40
Ich habe erst neulich bei TMS wegen deren CloudPacks nachgefragt.
Steht im Werbetext das es unterstützt wird, aber auf Nachfrage geht es im Moment wg irgendwelcher Apple Restriktionen nicht.
Mehr Info gab es nicht, und ich habe es auf Eis gelegt.

IMHO sollte es bis 2GB pro Nutzer frei sein, man braucht aber eine App Anmeldung für einen Token bei i Cloud.
Ich denke es könnte auch mal kostenpflichtig werden.

Wenn es da Lösungen gibt würde ich mich gerne anschliessen, dürfte auch was Kosten wie bei TMS.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 9. Mär 2019, 15:42
Hmmhh..

Sobald ich die hier beschriebene Ergänzung in der Entitlements (mit meinen Daten natürlich) mache, kommt die Meldung, dass das Package nicht auf dem Gerät installiert werden kann:

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>
Ich habe mir in der Aplle-Developper-Verwaltung einen iCloud-Container-Key angelegt. Der muss zwangsweise mit "iCloud" anfangen.

Aber auch, wenn ich den Namen exakt unter "com.apple.developer.ubiquity-container-identifiers" so eintrage, geht es nicht.

Also konkret:

Das geht nicht, als Key (XXXXXXXX natürlich durch meinen Developer-Namen ersetzt):
Code:
XXXXXXXX.de.hastasoft.TimOnize
Und das auch nicht (so in Apple-Developer als iCloud container angelegt):
Code:
iCloud.de.hastasoft.TimOnize
Auf dem Gerät selber muss ja wohl nichts zusätzlich installiert werden, oder? Jedenfalls gibt es nichts, was man aus der Developper-Verwaltung diesbezüglich runterladen könnte.

Geändert von Harry Stahl ( 9. Mär 2019 um 15:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 9. Mär 2019, 18:39
Jetzt bin ich schon mal ein wenig weiter:

Man muss seine App-ID noch einmal bearbeiten und dort den Zugriff auf iCloud aktivieren (also Online im Apple-Zertifikate-Bereich).

Darüber hinaus muss man dann noch seine Provision-Dateien (Entwicklung und Distribution) für diese App bearbeiten und neu erstellen und dann nach Download neu auf dem Device neu installieren.

Delphi passt dann übrigens selbständig die Entitlements-Datei richtig an, da muss man also dann also nichts machen (musste allerdings selber manuell unter Optionen, Provisionig die Zertifikate noch mal manuell auswählen).

Zwischendurch ging natürlich 1000 mal nichts (kein deployen aufs Gerät), so dass ich mal wieder einige Stunden mit diesem Management-Kram verbracht habe...

So gut und schön: Allerdings wirft der Code keinen iCloud-Pfad aus und die App erscheint im Gerät auch nicht für ICloud- nutzbare Apps:

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;
Was könnte jetzt noch fehlen...???

Geändert von Harry Stahl ( 9. Mär 2019 um 19:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 10. Mär 2019, 17:25
Was mir bislang nicht bekannt war, ist, dass man auf die iCloud ja auch per Browser zugreifen kann und dort auch Zugriff auf das iDrive hat und dort auch Dateien hoch und runter laden kann. Insofern kann ich schon verstehen, warum die Anwender auf Ihre Daten über die iCloud zugreifen möchten.

Nur leider will es mir noch immer nicht gelingen.
Wie gesagt, habe APP-ID mit iCloud-Enabled und neue Provision-files erstellt und auf dem Gerät neu installiert.
Delphi erkennt eigenständig (wohl über die Provision-files), das die APP-ID iCloud beinhaltet und erstellt die benötigten Schlüssel für die Entitlements-Datei.

Hier mal nachfolgend dargestellt (Nur meine Entwickler-ID habe ich durch XXXXXX ersetzt). Aus meiner Sicht eigentlich alles richtig. Dennoch wird für die installierte App keine iCloud-Nutzung angeboten.

Was kann hier nicht stimmen?

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>XXXXXXXXXX.de.hastasoft.TimOnize</string>
    <key>get-task-allow</key>
    <true/>
    <key>com.apple.developer.ubiquity-kvstore-identifier</key>
    <string>XXXXXXXXXX.*</string>
    <key>com.apple.developer.icloud-services</key>
    <string>*</string>
    <key>com.apple.developer.icloud-container-environment</key>
    <array>
    <string>Development</string>
    <string>Production</string>
    </array>
    <key>com.apple.developer.icloud-container-identifiers</key>
    <array>
    <string>iCloud.de.hastasoft.TimOnize</string>
    </array>
    <key>com.apple.developer.icloud-container-development-container-identifiers</key>
    <array>
    <string>iCloud.de.hastasoft.TimOnize</string>
    </array>
    <key>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
    <string>iCloud.de.hastasoft.TimOnize</string>
    </array>
    <key>com.apple.developer.team-identifier</key>
    <string>XXXXXXXXXX</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXXXXXXXX.de.hastasoft.TimOnize</string>
    </array>

</dict>

</plist>

Geändert von Harry Stahl (10. Mär 2019 um 17:27 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.882 Beiträge
 
Delphi 12 Athens
 
#6

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 11. Mär 2019, 19:54
Hast Du TMS im Einsatz, dann frag einfach nochmal nach.
Der Bruno sagt mir ja nicht ohne Grund das es wg. Apple nicht geht, womöglich irgendein Rechte Blödsinn,
Sonst hätte ich TMSCloudPack schon ausprobiert und gekauft.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 11. Mär 2019, 22:40
Ich habe das TMSCloudpack auch, bislang aber nicht im Einsatz. Funktioniert auch nicht hier, aber wohl wegen einer grundsätzlichen Einstellung, die nicht stimmt (das Cloudpack macht einen guten Eindruck, wenn ich die iCloud dann mal aktivieren kann, werde ich wohl auch das TMSCloudpack verwenden).

Habe mich an den Apple-Support gewandt, 2 Anfragen hat man ja kostenlos. Mal schauen, ob die mir weiter helfen können.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 14. Mär 2019, 19:37
So, habe nun mit Hilfe des Apple-Support rausbekommen, dass die in der Entitlements-Datei erzeugten Einträge für iCloud nicht korrekt waren. Das kann man ja insofern mit Delphi fixen, indem man die Datei fürs Deployment abwählt und eine eigene Entitlements-Datei zur Verfügung stellt.

Aus dieser Entitlement-Datei und den Zertifikaten erstellt Delphi dann im ScratchDir-Verzeichnis in dem App-Verzeichnis eine embedded.mobileprovision datei. Die besteht aus den Zertifikaten und den Inhalten der Entitlement-Datei. Nur hier leider immer aus den Inhalten der falschen, eigentlich abgewählten Entitlements-Datei.

Wann wird diese Datei erstellt? Anscheinend nicht jedesmal. Je nachdem, ob ich für Entwicklung oder Anwendungsstore compiliere, zaubert Delphi / PAServer entweder eine embedded.mobileprovision datei her, mit dem Datum von gestern oder vom 09.03.

Weiß jemand, wie man auf die Erstellung der embedded.mobileprovison datei Einfluss nehmen kann?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.882 Beiträge
 
Delphi 12 Athens
 
#9

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 15. Mär 2019, 07:45
Was genau stimmt denn nicht, fehlt ein <key> ?
Normalerweise sollte man auch die _Template.entitlements im Source-Verzeichnis ändern können.
Die wird soweit ich weiss nur einmal angelegt, habs jetzt nicht bei Rio gecheckt,
aber zumindest muss mann dann nicht im ScratchDir machen.
Evtl. reicht es auch einen neuen Key unter Version info anzulegen.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Datei in iCloud/iDrive speichern und lesen

  Alt 15. Mär 2019, 09:40
Delphi legt die keys falsch an.

Z.B. darf hier nicht ein Stern stehen, sondern es muss ein konkreter Eintrag rein:

<key>com.apple.developer.icloud-services</key>
<string>*</string>

Aber selbst wenn man das richtig in der Template-Datei anlegt oder einen Key in Version-Info anlegt, schreibt Delphi das immer zusätzlich in die Datei (falsch) rein.

Wie gesagt, kann man ja umgehen, mit einer eigenen Entitlements-Datei.

Aktuelles Problem ist die embedded.mobileprovision, die von Delphi auf Grundlage der "falschen" Entitlements-Datei (die Delphi bei jeder Kompilation anlegt) generiert wird und somit da die falschen Keys drin stehen, die dann iCloud-Nutzung nicht ermöglichen.

Ich habe nicht rausgefunden, ob Delphi die embedded-Datei temporär unter Windows erzeugt und dann auf den MAC überträgt, oder ob der PA-Server diese Datei generiert. Mich irritiert auch, dass diese Datei nicht jedesmal erstellt wird, sondern anscheinend nur unter bestimmten Umständen, da ich je nach Entwicklungsziel (Entwicklung / Store) immer wieder die gleichen (älteren) Dateien im Bundle vorfinde (also auch, wenn ich dort zuvor alles gelöscht habe).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:30 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