Xamarin.iOS & Android App Center ハンズオン勉強回復習

iOS11 以上の iPhone 実機

— https://github.com/TomohiroSuzuki128/XamAppCenterSample2018

とあり、古い端末しか持っていないので、iOS端末を持たずに参加しましたが、端末に合わせた設定にすることにより実機でのアプリ実行と App Center でのUIテストまで確認出来たので備忘として残しておきます。

GitHub - TomohiroSuzuki128/XamAppCenterSample2018が当日のテキストですが、独自に変更が必要な箇所のみ以下に記載します。

1. 手持ちの端末

まずは、手持ちの端末の確認から

  • iPod touch (5th generation) : iOS 9.3.5 (13G36)

2. ダミーのプロジェクトの設定

「Xcode でのダミーアプリ実行」で作成するダミーアプリの Deployment Target を端末のOSバージョンに合わせて 9.3 に設定する。

be19b8be
図 1. Deployment Target

3. Xamarin プロジェクトの設定

Xamarin で作成する iOS アプリのプロジェクト設定も変更する。

3.1. 配置ターゲット設定

端末のOSバージョンに合わせて Info.plist の配置ターゲットを 9.3 にする。

2ac40565
図 2. 配置ターゲット

3.2. アーキテクチャ設定

iOSプロジェクトオプション を開いて

93e684ed

サポートされるアーキテクチャを ARMv7 に設定する。

04884534
図 3. サポートされるアーキテクチャ
ARMv7 を含んでいれば ARMv7 + ARMv7s 等を選んでも大丈夫なはず

4. App Center の New test run

App CenterNew test run で選択するデバイスは 10.0.3 または 10.0.2 とする。

7008c9ac
図 4. Select devices

それ以外の 10.2.1, 10.1.1 は以下のようになりテストに失敗する。

10.2.1 または 10.1.1 の場合 image::xamarin_handson/2a63d1b4.png[]

10.3.3 は以下のように謎なメッセージが

e710bd17
図 5. 10.3.3 の場合

実機のOSバージョンに合わせて 9.3.5 のデバイスを選択すると、以下のようなエラーが出てテストに通りません。

EnterText が日本語に対応していないようです。

1System.Exception : Error while performing EnterText("私は毎日電車に乗って会社に行きます。")
2  ----> System.Exception : Underlying query failed with output: ...snip... Error: VerboseError: target.frontMostApp().keyboard() failed to locate key '\u79c1'  typeString@[native code]

5. その他

端末で単体テストを実行したときに次のエラーが出たときは、一端端末から DeviceAgent-Runner を削除するとテストが実行出来ました。

c5ac0814
1SetUp : Xamarin.UITest.XDB.Exceptions.DeviceAgentException : Failed to launch DeviceAgent