2017-07-04 6 views
0

Ich versuche, Daten zwischen meiner Haupt-MacOS-App und der Erweiterung, die ich erstellt habe, zu teilen.
ich sah, ich habe die "App Groups" verwenden und die Daten mit "userdefault (suiteName: "name")" teilenTeilen Sie Daten zwischen Haupt-App und heute Widget macOS

Das Problem: Nach dem Einschalten App-Gruppen auf der Haupt App und einen Namen hinzugefügt, I dann App-Gruppen auf der Erweiterung aktivieren und die Liste ist leer, ich sehe nicht die Gruppe, die ich gerade erstellt habe?

Irgendeine Idee?

BTW: Das Team Profil ist das gleiche auf App und Erweiterung. Ich habe versucht, temporäre Datei zu löschen, Projekt zu löschen, Xcode und Computer wiederhergestellt.

enter image description here

EDIT 1: Ein IOS projizieren die App Gruppen erkannt werden ....
EDIT 2: Ich habe versucht mit Xcode 9, aber das gleiche Problem.
EDIT 3: Auf Zertifikate, Identifier & Profile Apple Website, Sie haben nicht die Kategorie "App Groups" für MacOS, ist es veraltet ??
EDIT 4: Wenn ich beide add Gruppen Namen manuell hinzufügen, dann habe ich einen Fehler in der Ausgabe:. [Benutzerdef.] Fehler beim Lesen der Werte in CFPrefsPlistSource < 0x6000000e4200> (Domäne: 726328455Z.test, Benutzer: kCFPreferencesAnyUser, ByHost: Ja, Container: (null)): Die Verwendung von kCFPreferencesAnyUser mit einem Container ist nur für Systemcontainer zulässig, von denen die Verbindung getrennt wird cfprefsd.

Edit 5: Sieht aus wie es erfolgreich mit diesem Code gespeichert arbeiten, werden die Daten

UserDefaults(suiteName: "7263xxx55Z.test")!.set(selectedRow, forKey: "selectedRow") 
UserDefaults(suiteName: "7263xxx55Z.test")!.synchronize() 

Und mit diesem Code holen, habe ich den vorherigen Fehler, aber ich es nur

let selectedRow = UserDefaults(suiteName: "726xxx55Z.test")!.integer(forKey: "selectedRow") 
ignorieren
+0

Haben Sie versucht, auf das Pluszeichen klicken und den Gruppennamen hinzufügen? – vadian

+0

ja ich tat, mit dem gleichen App-Namen, nach Team-Nummer, nach Gruppe. etc und nichts funktioniert – user3722523

+0

haben Sie Admin-Rechte des Entwicklerkontos? –

Antwort

0

Um Daten zwischen App/App-Erweiterung in Mac OS-Projekt zu teilen:

1/ Wählen Sie im Hauptprojektziel Funktionen und aktivieren Sie "App-Gruppen".

2/ Klicken Sie auf "+" und eine neue App Gruppennamen hinzufügen, müssen Sie es mit Ihrem Team ID starten (zB 643J438K.name.app)

3/ Repeat 1/und 2/für Ihre Erweiterung App Ziel, sollten Sie den gleichen Namen

4/ speichern und holen Daten verwenden, um hinzuzufügen:

// Store data 
UserDefaults(suiteName: "643J438K.name.app")!.set(yourVariable, forKey: "yourKey") 
UserDefaults(suiteName: "643J438K.name.app")!.synchronize() 

// Fetch data (integer type here) 
UserDefaults(suiteName: "643J438K.name.app")!.integer(forKey: "yourKey") 

5/ Sie können überprüfen, ob Ihre Daten korrekt durch das Öffnen dieser Datei gespeichert wird:

/Users/UserName/Library/Group Containers/643J438K.name.app/Preferences/643J438K.name.app.plist 
Verwandte Themen