web-dev-qa-db-ja.com

時計OS1およびOS2をサポートするXcode7

私はしばらくの間Xcode7をいじっていましたが、それがSwift 2のみをサポートし、Swift 1.0または1.2をサポートする方法がないことを知りました。 Xcode7で。これは問題ありません。

今WatchOSに来て、Xcode 7でWatchOS1用とWatchOS2用の2つのターゲットを別々に持つことができますか?両方をサポートできますか?

ウォッチターゲットとiOSアプリターゲットの両方のビルド設定でデプロイメントターゲット設定を調べていましたが、リストにはWatchOS2しか表示されなかったためです。

  1. Xcode 7でそれぞれWatchOS1とWatchOS2の2つのターゲットをサポートできますか?サポートしている場合は、WatchOS1 SDKをどこかにインストールする必要がありますか??またはこれは完全に不可能です。理由がない場合は?

  2. 両方のターゲットをサポートできる場合、両方のOSのアーキテクチャに大きな違いがあるため、両方のターゲットのソースの重複を防ぐにはどうすればよいですか。

  3. また、WatchConnectivityフレームワークの導入以降、iOSの対応するアプリにもいくつかの変更がありますが、2つのターゲットでそれを維持する方法は?

私は混乱していて、すぐに決断を下す必要があります。どんな助けでもありがたいです。

20
Satheeshwaran

Xcode7でwatchOS1アプリをサポートできます。Xcode7でwatchOS2アプリをサポートすることもできます。

WatchOS1とwatchOS2の両方をサポートする場合は、OSごとに個別のターゲットを用意する必要があります(アーキテクチャの違いにより)

WatchOS 1アプリの場合は、新しいターゲットを追加し、左側からApple Watchセクションを選択してから、リストからwatchOS 1用のWatchKitアプリをクリックします。

watchOS 1 App

WatchOS 2アプリの場合は、新しいターゲットを追加し、watchOS> Applicationセクションを選択してから、リストのWatchKit Appオプションをクリックします。

watchOS 2 App

Xcode 7(ベータ1)でwatchOS1アプリを作成する際の注意点がいくつかあります...

IOS8.3を実行しているiPhone6とwatchOS1.0.1を実行している時計でテストを行ったため、展開ターゲットをiOS 8.3に変更する必要がありましたが、これはターゲットレベルだけでなくプロジェクトレベルで行う必要があることに注意してください(拡張機能もメインアプリだけでなく8.3に設定されます。そうしないと、実際のデバイスにデプロイできません。

Xcode 7ベータ1の既知の問題により、ペアリングされた電話が64ビットの場合、watchOS1アプリは実際の時計にインストールできず次のエラーが発生します。

Jun 20 17:25:08 Liams-iPhone companionappd[271] <Notice>: (Error) WatchKit: validateWatchKitApplicationInfoDictionary, invalid Info.plist key 'UIRequiredDeviceCapabilities'

これは、Xcode7がビルド時にUIRequiredDeviceCapabilitiesinfo.plistキーにarm64を追加しているためです。

これを一時的に回避するには、DEBUGモードでBuild Active Architecture OnlyNOに設定します。

Xcode 7 Known Issue

それが役立つことを願っています

26
liamnichols

IOS 9iPhone用のwatchOS2アプリと、iOS8デバイス用のwatchKit拡張機能の両方を使用できます。

(watchOS 1のように)WatchKitアプリをまだ作成していない場合は、watchOS2アプリを作成してwatchOS1アプリを作成し、維持しようとするのは非常に非生産的です...正気のためのwatchOS2!

4
Daniel