2015-05-06 5 views
7

Ich arbeite derzeit an Projekten, die viel (10 +) Ziele hat. Dies ist eine weiße Marken-App, jedes Ziel ist einem Kunden gewidmet, alle Ziele teilen sich den exakt gleichen Code, kompilieren jedoch verschiedene Ressourcen (insbesondere .xcsassets).Apple Watch, mehrere Ziele und gemeinsame Watchkit-Erweiterung/Watckit App-Ziele

Ich möchte Apple Watch in mein Projekt integrieren, um Benachrichtigungen auf der Uhr zu aktivieren. Es erfordert 2 Ziele, Watchkit-Erweiterung und App hinzuzufügen. (Hinweis: Das Ziel der WatchKit App wird mit den gleichen .xcassets verknüpft sein wie die zugehörige iPhone App, um die AppIcon zu erben).

Während es für ein Projekt mit nur wenigen Zielen in Ordnung ist, ist das in meinem Fall wirklich nicht praktikabel. Eine Menge neuer Dateien, die erstellt wurden, .splitten Sie über meine Subversion-Ordner und machen die Liste der Ziele wirklich riesig.

Wäre es möglich, diese zwei zusätzlichen Ziele an alle meine Kunden zu teilen? Vielleicht ist es möglich, Skripts zu verwenden, um die WatchKit App/Extension-Ziele (Zielnamen, Bundle-ID usw. aktualisieren) automatisch dem zu erstellenden Schema/iOs-Ziel anzupassen?

Jede Idee wäre mehr als willkommen.

+0

doppeltes Ziel für Uhrensatz 1 Erweiterung und Uhrensatz 1 App zusammen mit Uhr os 2 Ziele. Jetzt Ändern Sie einfach die Paketkennung für alle neuen Ziele. Außerdem können Sie die neuen Ziele nicht manuell in die entsprechende App einfügen. Lassen Sie mich wissen, wenn Sie nicht verstehen, werde ich ein Tutorial erstellen. –

+0

Hast du das funktioniert?Ich versuche genau dasselbe, aber es scheint irgendwo ein bleibendes bundleid zu geben (kann es nicht mit der Suche selbst finden) – tskulbru

+0

Ich habe eine ähnliche Frage. AFAIK, Xcode gibt mir nicht einmal eine Option, um eine zu erstellende Erweiterung auszuwählen – user210504

Antwort

0

Sie können die uhrabhängige Zielplattform mithilfe von Konfigurationen und benutzerdefinierten Einstellungen steuern, um die Paket-ID zu steuern. Angenommen, Sie haben 10 Ziele und müssen eine Überwachungs-App erstellen und die Bundle-ID für jede Haupt-App in Benutzereinstellungen unter Projekteinstellung (nicht zielspezifisch) definieren, sodass Sie diesen Namen zusammen mit zwei Überwachungszielen auf Ihr Ziel erweitern können.

Zum Beispiel für Ziel A, definiert Sie Bündel-ID als BUNDLE_A_ID as com.company.a Sie $(BUNDLE_A_ID) als Bundle-ID in App Ziel, $(BUNDLE_A_ID).watchapp or $(BUNDLE_A_ID).watchappextension in Ihre Uhr Ziele verwenden können, so dass Sie Bundle-ID nicht in jedem Ziele definieren müssen, Ihre Definition dieser Einstellung wird an einen Ort gebunden (Projekteinstellung).

0

ACHTUNG: Erstellen Sie eine Kopie Ihres Projekts oder erstellen Sie eine neue Verzweigung, um diese Lösung zu testen.

Ich fand, wie man es repariert. Ich gehe davon aus, dass Sie eine iOS-App verwenden und eine Apple Watch-App funktioniert, und Sie müssen weitere Apple Watch-Apps hinzufügen, ohne Code zu wiederholen.

Schritt 1: Datei/Neu/Ziel die "WatchOS" Wählen Sie die Registerkarte und wählen Sie dann "WatchKit App" Wählen Sie die App Sie wollen Link mit diesem neuen Apple-Uhr-App Klicken Sie auf Weiter

Schritt 2: Blick auf den neuen Ordner für die neue Apple-Uhr-App erstellt und löschen Sie die alle * .swift und * .storyboard

Schritt 3: die .storyboard auswählen und .swift Dateien Ihrer Faust Apple Watch-App, die ursprünglich arbeitete und Sie sollten ihnen die neue und die alte Target-Mitgliedschaft zuweisen. In Zukunft sollten alle Ihre Watch App-Dateien diese Ziele ausgewählt haben.

enter image description here