前提
この記事は以下の前提がありまーす。
環境
- OS X El Capitan 10.11.1
- Xamarin Studio Version 5.10.3 (build 26)
- Apple Developer Tools Xcode 7.2.1 (9548.1)
- Xamarin.iOS Version: 9.4.2.27 (Business Edition)
- 2016/03時点でのDeveloper Member Center及びDeveloper登録
備考
- 自分用のメモ
- コーディングはなし
そして現在のXamarin.iOSではWatch OS1しか開発できません。
https://developer.xamarin.com/guides/ios/watch/
なので今更感もありますが、自分の勉強のために作っています。あしからず
以上。
本題
ここに書いてあることをやっています。
個人的には公式のDocumentよりはわかりやすい!
そしてこれ以上に説明することがない!けど備忘録の代わりでもあります。
Develop Member Centerにて
Watch用のApp IDは自動的に作られるわけでもないので独自のルールに沿って作りましょう。
-
com.myapp.ayasesh
→group.com.myapp.ayasesh
-
com.myapp.ayasesh.watchkitextension
→group.com.myapp.ayasesh
com.myapp.ayasesh.watchkitapp
注意点
GroupID
をAppID
の後に作っているので
AppID
からGroupID
へのひも付けを忘れないようにしましょう。
そしてひも付けが必要なのはiOSApp
とWatchExtension
で、Watch App
はしないでください。
(このあたりはWatchOS1の仕様のまま?XamarinでOS2のアプリが作れるようになったら変わる可能性大)
ローカルで実機テストしたい場合は、
上記のAppIDsとGroupIdを作った後、AppleWatchのidentifierを追加しましょう。
自分の環境だとここで登録して作らないとデプロイは無理でした。
(途中までゲージが伸びて落ちるを繰り返す)
ID作成とDevice登録が終わりましたら、ID毎にprovisioning profile
を作ればおk。
Xamarin Studioにて
プロジェクト作成
いつもと同じ通りに New Solution... から
Apple Watchのプロジェクトは直接作れませんので iOSプロジェクトもしくはCros-PlatformのAppから作ります。
Organizationは上記のIDを考慮した方が楽です。
今はgit init
と.gitignore
を作ってくれるのがいいですね。
プロジェクトができたら、ソリューションを右クリックして Add -> Add New Project... を選択
iOS -> Extension -> Apple Watch -> WatchKit Appで
その後は対象のAppを選択します。間違えることはないですねw
シミュレーター起動
一応このままでもビルドとシミュレーターへのビルドは出来ます。
早速やってみましょう。
WatchKitExtensionのプロジェクト(長いので移行WKEで)をSet As Startup Project
してみましょう。
左上の実行できるシミュレーターの数が少なくなったのがわかると思います。
きな臭くなってきましたがWatchOS2では開発できないからだと思います。
では適当に選択して実行を押してみましょう。
... 実行できましたか?
実行できない場合
Starting iPhone 6
error MT0000: Unexpected error - Please file a bug report at http://bugzilla.xamarin.com
error HE0020: Could not find a paired Watch device for the iOS device 'iPhone 6'.
この場合はXcodeのバグらしいです。
ただ起動したiPhoneのシミュレーターにWatchのシミュレーターがペアリングされてないのでペアリングしましょう。
Xcodeを開いて Window->Devices 下の+からAdd Simulator deviceとos、Pair用のサイズを選択してください。
注意点はXamarinが対応できるOSとiPhoneを選ぶことです。OSは良いのですが、Deviceは iPhone6にしておきましょう。
info.plistとEntitlements.plistの設定
何も設定していない場合はこんな感じだと思います。
変更点はしいて言えばApplication Nameぐらい。
表示されるのはWKAのApplicationNameなのでそちらを変更しておきましょう
EntitlementsはiOSとWKEのプロジェクトで以下の変更が必要です。
証明書の設定
もともとAutomaticになっているので設定いらずです。
ですが確認のために項目が表示されているかはみたほうが良いと思います。
各々のプロジェクトの Option -> Build -> iOS Bundle Signing
順番があるかわかりませんが iOSプロジェクトからやると問題ないと思います。
Xamarin Studioは起動時に証明書のロードしていると思います。
なので表示されない場合は、落ち着いてXSを一度再起動する、またはXcodeからProvisioning Profilesを確認しましょう。
おしまい
自分の環境では上記のやり方でXamarinStudioで実機デプロイまで出来ました。
抜け漏れがありましたらコメントいただけると嬉しいです。
もしくはこれでも出来ないという人もお手伝いできると思いますのでコメントください:)
次はコーディングの予定!
ありがとうございました。
(XFのgestureは諦めた!)