AppGroup: Kommunikation zwischen WatchKitExtension und der iPhone-App
Hallo und Herzlich Willkommen zu unserem zweiten Teil der Serie HowToDoIt!
Es freut uns immer noch, dass du Interesse an unserer 70-teiligen Tutorial-Serie hast, in deren Verlauf wir gemeinsam eine komplette App erstellen, die so auch in den App-Store eingereicht werden kann.
Inhalt dieser Folge
Im zweiten Teil richten wir eine AppGroup ein. So etwas brauchen wir, damit die WatchKitExtension, also der Teil der Anwendung der auf der Apple Watch läuft, mit der iPhone-App kommunizieren kann. Denn ToDo-Einträge, die auf der Uhr abgehakt werden, sollen innerhalb der iPhone-App sofort den selben Status erhalten und umgekehrt.
Video
7 Comments
Ich möchte jetzt noch nicht für die Watch entwickeln. Kann ich den Kurs weitermachen, ohne die Schritte für die Watch? Generell gefragt, kann man später noch die Watch in eine dann noch zu gründende Gruppe aufnehmen? Auf was muss ich dann achten?
Danke, ciao.
Hier stoße ich an ein Problem:
– ich habe noch keine app-group angelegt, bekomme deshalb unter capabilities-app groups auch keine angezeigt.
– ich klicke auf das „+“ um eine „app group“ anzulegen, bekomme den Dialog add a new container und gebe dort einen Namen ein. Welche Konvention habe ich hier einzuhalten? Ich habe in meinem Fall angegeben group.de.cdsdesign.HowToDoIt-DE und ok geklickt.
– jetzt sehe ich den group-Namen unten in der Liste, allerdings rot. Darunter die Fehlermeldung „Add the „App Groups“ entitelement to your App.
-Darunter ein zweites Warnausrufezeichen „Add the App Groups containers“ entitlement to your App ID“ ergänzt mit dem grauen HInweis „an App IF wirh identifier `com.example.HowToDoIt-DE‘ is not available. Please enter a diffent one.
Was ist hier falsch gelaufen?
Hallo Herr Steuber,
leider hat das Backend von Apple immer wieder einmal Probleme mit dem Einrichten der Capabilities. Arbeiten Sie schon mit Xcode7? Es könnte sein, das diese Funktion noch nicht richtig funktioniert. Arbeiten Sie noch mit Xcode6? Es könnte sein, dass Apple gerade mit der Umstellung auf Xcode7 beschäftigt ist. Wir als Entwickler werden darüber von Apple nicht informiert. Es wäre nicht zum ersten mal, dass es funktioniert, wenn Sie den Vorgang morgen oder übermorgen wiederholen.
Eine andere Alternative wäre es, selbst über das Zertifikat-, Profil- und ID-Management von developper.apple.com für Ihre App eine AppGroup einzurichten.
Bitte bedenken Sie auch, dass die Bundle-Id in Ihrem Fall lauten müsste: „de.cdsdesign.HowToDoIt-DE“, ich denke jedoch, das ist bei Ihnen schon längst der Fall.
Ich hoffe, Sie bekommen die Probleme in den Griff, es ist manchmal wirklich unbefriedigend, an solchen stellen hängen zu bleiben. Ich kann nur Daumen drücken, und hoffe, dass es hilft 🙂
Mit herzlichen Grüßen
Frank Jüstel
Danke für die rasche Antwort. Ich hatte das mit xCode 6.3 probiert. Die Bundle-ID hatte ich genau so angegeben, das hatte ich ja auch im Kommentar schon geschrieben. Ich habe gerade das Xcode 7 Beta runtergeladen und versuche es damit nochmal. Eine Verständnisfrage: das „group.“ hatte ich in der Gruppen-Bezeichnung voran stehengelassen, das hatte ich so ihrem Video entnommen. Muss das weg?
Nein, nein, das „group.“ ist wirklich zwingend stehen zu lassen!
l.G.
Franky
Hallo Swift-Blog Team,
ich habe auch alles bis ungefähr Video 40 „nach gemacht“. Danach hab einen kapitalen Fehler unternommen. Ich habe mit XCode 7 den Swift 1 Code in Swift 2 umwandeln lassen…, ging natürlich schief. Gut, die Fehler hab ich alle wieder gerade gebogen. ( ich meine do-try-catch, statt if let) die App funktioniert auch wieder auf dem iPhone . Leider findet die Kommunikation nun nicht mehr über die app Groups statt. Man sollte die watchApp als watchOS1 belassen, bis Ihr hoffentlich einen kleinen Nachtrag zur Kommunikation mit watchOS2 macht. Bitte ….
Ansonsten habt Ihr mir schon super weiter geholfen.
Mario
Vielen Dank für den Kommentar,
ja, das ist wirklich ein Graus. Kaum sind die Videos produziert, schon sind sie veraltet. Wir sehen zu, dass wir einen Update liefern können, es wird jedoch etwas dauern…
l.G.
Franky