« 2017年1月 | トップページ | 2017年3月 »

2017年2月

2017年2月12日 (日)

MacやXcodeを知らないやつが始めるXamarinアプリ開発 - Visual Studio Mobile Center概要:テスト

今回はテスト機能についてです。
実体はXamarin Test Cloudなのですが、使用可能な機種が制限されている(現時点で約400機種)とか、テストの実行がVSTS+Xamarin Test Cloudと異なるところなどがあります(今後改善されるとは思います)。

ここでは、UIテスト構成の作成や実行などについて記載します。UIテスト用プロジェクト作成とかの内容についてはSDKのところで書きたいと思います。

まずはテスト構成を作成します。初期状態だと、こんな画面が表示されるので、「Try automated UI testing」をクリックします。
001
次にテスト構成の作成に入るために画面中央の「Start testing your app」(これは初期状態でしか表示されません)、または右上の「New test run」をクリックします。
002

機種選択画面が表示されるので、テスト対象にしたい機種のチェックボックスをONにした後、「Select 〇 devices」をクリックします。 "〇"には選択した機種数が入ります。
003

テスト構成の詳細を指定したあと、「Next」をクリックします。
004
〇Test series
 どのテスト構成に対して設定するかを選択します(初期状態では「master」しかありません)。
 「Create new」をクリックすると、新しいテスト構成を作成することができます。
〇System language
 作成されるアプリは多分日本語だと思いますので、「Japanese(Japan)」を選択します。その他の言語でテストするときは該当する言語を選択します。
〇Test framework
 テストプロジェクトで使用するテストフレームワークを選択します。今回はXamarinアプリですので「Xamarin.UITest」を選択します。

最後にテスト方法に関する説明が表示されますが、この内容が非常に重要ですのですぐに閉じたり「Done」をクリックしないようにしてくださいw
(慣れるまでは、テキストをコピペして保存したほうがいいかもしれません)
005
ここからが、VSTS+Xamarin Test Cloudとは大幅に違うところです。
(一番改善されてほしいところでもあります)

前準備として、ローカルにXamarin UITestプロジェクトをビルドすることができる開発環境+Node.js実行環境が必要です(Windows環境でも問題ありません)。
今回はWindows 10/Visual Studio 2015/Node.jsはnodistでv6.9.2をインストールしています。
そして、一度Xamarin UITestプロジェクトをビルドしておきます。このときには、ビルド対象はAndroidでも問題ありません(Mac不要)。

ここからは、先ほどテスト構成の設定で表示されたページに従っていきます。
まず、npmでMobile Center Command Line Interfaceのパッケージ(mobile-center-cli)をインストールします。
→npm install -g mobile-center-cli

次に、テスト対象アプリをMobile Centerに登録/テスト実行します。
が、ここでドキュメントとして表示されていない手順として、コマンドラインからMobile Centerへのログインが必要です。
→mobile-center login
 ※大昔、ここでエラーが発生してあきらめた方は、最新のmobile-center-cliを再インストールしてください。

ようやく本題に入れますw。先ほどのページには以下の内容が表示されていました。
mobile-center test run uitest --app "[Mobile Centerで作成した時のアプリ名]" --devices [Xamarin Test Cloudで割り振られたデバイスID] --app-path [①] --test-series "master" --locale "ja_JP" --build-dir [②]

ここで指定する内容は以下の2つです。
①--app-path
 .ipaのファイル名を指定します。カレントフォルダにない場合はパス指定が必要です。
 ローカルにMacのビルド環境がない場合、Mobile Centerのビルドからダウンロードしたものを使用できます。
②--build-dir
 UITestプロジェクトをビルドして生成されたDLLの格納フォルダ(UITestのプロジェクト名が"UITest"の場合、"UITest\bin\[Debug] or [Release]")

ここでの注意点ですが、「run the following commands from the directory that contains the NuGet packages directory」とあるように、このコマンドを実行するときのカレントフォルダをソリューションのpackagesフォルダ(.slnファイルが格納されているフォルダ内にあると思います)にしておく必要があります。

コマンドを実行すると、Xamarin Test Cloudにアプリが転送され、テストが実行されます。
※アプリ転送やテストデバイスの空き状況などにもよりますが、結構時間がかかります。

と、ここまで書きましたが、現時点[2017/02/12]では、テスト実行後にエラーとなります(;´Д`)
→コマンドプロンプトに
 Current test status: Tests completed. Processing data.
 Current test status: Failed!
 Reason: Mono dependency error:
と出力されます。これも少し待てば解消されると思います。
・・・もしかすると自分の実行方法(というか、XarinやNUnitとかのバージョン依存関係?)がおかしいのかもしれませんが、プレビュー感満載w

テスト結果はウェブサイト上で確認できます(上記エラーのため、スクショはあまり意味がないので省略)。


次はDistribute(アプリ配布)についてです。

2017年2月11日 (土)

MacやXcodeを知らないやつが始めるXamarinアプリ開発 - Visual Studio Mobile Center概要 ビルド機能

今回から各機能の説明ですが、最初はBuildについてです。
VSTSと異なり、非常に単純化されていて、細かいことを気にしなくても使えるようになっています。
現時点ではリポジトリとしてGitHubしか対応していませんが、今後BitbucketとVSTSに対応予定です。

使い方ですが、まず連携対象のリポジトリを指定します。「Connect to GitHub」ボタンをクリックして、GitHubのリポジトリにアクセスします。
(GitHubアカウントでログインしていない場合、GitHubの認証が入ります)
GitHubのリポジトリ一覧が表示されるので、連携対象のリポジトリを選択します。
003
更にブランチを選択します。
004
「Set up branch」ボタンをクリックして、ビルド設定を行います。
005
006

〇Project
 VSのソリューションファイル名を指定します(リポジトリにソリューションファイルが1つだけならデフォルトのままでOK)。

〇Configuration
 VS IDEでの「ソリューション構成」を指定します(VS IDE上部の青枠部分で選択できる内容です)。
007

〇Xcode Version
 Xcodeのバージョンを指定します。

〇Build on push
 リポジトリに変更が入ったときに自動でビルドを実行する場合にONにします。

〇Build for simulator only
 ビルドしたアプリをシミュレータだけで実行するときにONにします(実機展開するときはOFF)。

〇Sign builds
 実機展開するときにONにします。
 個人的には「Build for simulator only」と「Sign builds」を両方ともOFFにする運用が思いつきませんが、"「Build for simulator only」をOFFにするとビルドが早くなる"とドキュメントに書いてあるので、ビルド可否だけを確認したいときとかでしょうか。
 なぜか、「Build for simulator only」と「Sign builds」を両方ともONにすることができますが、どうなるのかはわかりませんw。

〇Distribute builds
 ビルド後にアプリを展開したいときにONにして、アプリの展開先グループを指定します。
 「Build for simulator only」をOFFと「Sign builds」をONにしないとこの設定は行えません。

設定が完了すると、ビルドが実行できるようになります。また、ビルド履歴も表示されます。
ビルド履歴の中には実行中のものも含まれます。実行中の状況を見たいときは、ビルド履歴のStatus欄の「BUILDING」をクリックするとビルドログが表示されます。
008
009
また、ビルド履歴からアプリやシンボル情報をダウンロードすることもできます。
010


ここでVSTSのビルドとは大きく異なる点があります。
なんと、Mobile Centerでは"ビルドにMac実機が不要"なのです!!
ビルド環境は、クラウド上の仮想マシンで実行されます(https://docs.microsoft.com/en-us/mobile-center/build/software)。
「とりあえずiPhoneアプリ作ってみたいけど、Mac持ってない」という方には朗報だと思います。

次はテスト機能についてです。

2017年2月10日 (金)

MacやXcodeを知らないやつが始めるXamarinアプリ開発 - Visual Studio Mobile Center概要 アプリ登録

まず、管理対象とするアプリを登録します。
→アプリ登録と言っても、アプリファイルをアップロードするのではなく、VSTSのチームプロジェクトを作成するイメージです。
初期画面から「Add new app」ボタンをクリックします。
001_2

管理対象アプリの属性を入力する項目が右側に表示されるので、各項目を入力したあと、「Add new app」ボタンをクリックします。
002_2
〇Name
 Mobile Center上での管理名を入力します。
 下段には詳細を入力します(入力しなくてもOK)。

〇OS
 「iOS」「Android」かを選択します。
 今後、UWPは追加されるっぽいです。

〇Platform
 「Objective-C / Swift」「React Native」「Xamarin」から選択します。

これで各種機能の設定などが行えるようになります。

次はビルド機能についてです。

MacやXcodeを知らないやつが始めるXamarinアプリ開発 - Visual Studio Mobile Centerとは

今までモバイル開発や運用で有益なサービスであるHockeyApp/Xamarin Test Cloudについてまとめてみましたが、これらのサービスが1つにまとまったサービスとして「Visual Studio Mobile Center」というものがあります。現時点ではプレビューですが、HockeyAppのサイトに「Preview the Next Generation of HockeyApp」とあり、最終的にはHockeyAppやXamarin Test Cloudに変わるサービスとなるようです。

利用するためには、まずアカウントを作成します。トップページ(https://mobile.azure.com/login)にアクセスすると右側にログインのための項目がならんでいます。
001
GitHubやMicrosoftアカウントを持っている方は「Connect with Github」「Connect with Microsoft」でMobile Centerを使うことができます。

それ以外の方は、下にある「Register」をクリックするとメールアドレス/ユーザ名/パスワードを入力する形に変わります。
各項目を入力して「Create account」をクリックすると、ユーザが登録できます。
002
プレビュー開始直後は招待制だったり、「outlook.com」や「gmail.com」などのメジャーなメールアドレスでは登録できないといった制約がありましたが、現時点ではそういった制約はないようです。


使用できる機能は、Build/Test/Distribute/Tables/Identity/Crashes/Analyticsの7種類です。
003
〇Build
リポジトリからソースコードを取得してビルドを実行してくれます。連携可能なリポジトリですが、現時点ではGitHubのみです(゚д゚)
今後BitbucketとVSTSが対応予定のようです。

〇Test
実体はXamarin Test Cloudですが、テスト対象にできる機種の種類が少なくなっています。

〇Distribute
アプリケーションの配布先とリリース管理(配布履歴)ができます。

〇Tables
Azure上にデータを格納するためのテーブルを作成・編集できます。また、データのアップロードもできます。

〇Identity
モバイルアプリからクラウド上の認証サービスを使うための設定を行います。
実体はAzureの「App Service Authentication/Authorization」です。
使用できる認証プロバイダはAzure Active Directory/Facebook/Google/Microsoft Account/Twitterです。
(アプリ側はMobile Center SDKを組み込むことで対応します)

〇Crashes
アプリのクラッシュ情報を管理します。

〇Analytics
アプリの利用状況(ユーザ数や各種イベント)を管理します。
これらの機能をアプリから使用するためのSDKも準備されています。


基本はHockeyAppやXamarin Test Cloudと同じなのですが、所々で違うものもあるので、次回以降でこれらの概要や相違点とかについて触れてみます。

« 2017年1月 | トップページ | 2017年3月 »

無料ブログはココログ