MacやXcodeを知らないやつが始めるXamarinアプリ開発 – Visual Studio Mobile Center概要:データ格納

今回は、クラウド上にあるデータ格納領域を管理する機能(Tables)についてです。
(思いのほか長くなったので、Identityについては別にします)

Tablesは、Azure上のテーブルに対して、テーブル作成・削除/項目の編集/データのインポート・全レコードクリアができます。
使用前の注意点としては、Mobile CenterのログインユーザがAzureが使える状態でないと使えません。
(Azure上にリソースを作成するので仕方がないのですが)

まずはテーブルを作成してみます。Tablesの初期画面にある「Create Table」をクリックします。
001

テーブル名と、テーブルに対する属性を指定し、「Create」をクリックします。
002

指定する属性の内容ですが、
・Authenticated
 匿名ユーザでテーブルにアクセスさせる場合はOFFにします。
・Soft delete
 削除処理で、論理削除にする(いきなりレコードを削除せず、自動的に作成される項目"deleted"を使ってレコードを処理対象外とする)ときにONにします。
・Dynamic schema
 レコードを挿入したときに、挿入したオブジェクトに合わせてテーブルの列を変更したいときはONにします。
・Per-user data
 ユーザ単位でデータを分けて管理したいときにONにします。ONの場合、自動的に"userId"という列が追加されます。

この状態では「とりあえずシステムで使用する最低限の枠だけ作成された状態」ですので、実際に使用する項目を追加していきます。
右上にある「Edit Schema」をクリックします。
003

次に、右上にある「Add Column」をクリックします。
004

追加する項目の名前と型を入力し、「Create」をクリックすると、テーブルに列が作成されます。
005

テーブルが作成できたら、次はデータをインポートしてみます。テーブルの項目が表示されている画面で、右上の「・」が縦に3つ並んでいるところ(ハンバーガーメニュー)をクリックし、「Upload CSV」をクリックします。
006

「Clear table」でテーブル内の全レコード削除、「Delete table」でテーブルの削除を行うこともできます。

CSVファイルのアップロード画面で、.csvファイルをエクスプローラーからドラッグし、「Upload」をクリックすると、データがインポートされます。
007

008

なお、CSVファイルは、
 ・ヘッダ行(列名)が必要
 ・自分が追加した列はすべて指定する必要がある
 ・ファイルサイズは最大4MBぐらいまで
という条件で作成する必要があります。

テーブルの情報やデータについては、Azure上でも確認できます。App Services内の「Easy Tables」に作成されています。
009

010

アプリからアクセスする方法ですが、Mobile Center SDKではなくWindows Azure Mobile Services SDKを使用します。
サンプルはネットにたくさん溢れているのでそちらを見てください。

次は認証連携(Identity)についてです。

MacやXcodeを知らないやつが始めるXamarinアプリ開発 – Visual Studio Mobile Center概要:アプリ配布

今回はアプリ配布(Distribute)についてです。
Mobile Centerでは、アプリの配布先をグループ単位で管理するようになっています。
この部分でできるのは、「配布先ユーザの確認」「配布履歴」「配布実行」「配布先グループの作成」の3つです。
※配布先グループにユーザを登録するのは「アプリ管理(Manage app)」からになります。

配布グループに関する情報を確認したいときは、「Distribution Groups」画面から対象グループをクリックすることで、登録されているユーザを確認したり、アプリを配布した履歴を確認できます。
001

002

003

何か順番が違う気もしますが、ここで配布先グループにユーザを登録してみます。登録ユーザがGitHubアカウント/Microsoftアカウントのどちらでもない場合は、事前にMobile Centerにユーザを登録しておきます。
グループ内のユーザ一覧が表示されている画面にある「collaborators of this app」の部分がアプリ管理へのリンクになっていますのでクリックします。
004

グループ欄の一番下に「Invite users to this app bu email」と表示されている入力欄がありますので、そこに登録ユーザのメールアドレスを入力し、「Save changes」をクリックします。
※メールアドレスは、アプリを使用する端末が受信できるものを使用したほうが、メール内のリンクをクリックするだけで作業が行えるので、アプリ更新時の対応が楽になります。

登録ユーザには招待メールが到着しますので、「Accept Invitation」をクリックします。
005

Mobile Centerへのログイン画面が表示されるので、GitHubアカウントやMicrosoftアカウントを使用する方は上側にある「Connect with ~」をクリック、それ以外の方はメールアドレスとパスワードを入力して「Sign and join app」をクリックします。Mobile Centerの画面が表示されれば登録は完了です。
007

008

※確認用ユーザのため、Mobile Centerの画面に管理アプリが表示されていますが、開発者ではなく配布対象のみのユーザではアプリ一覧が空白で表示されます。

配布先の登録が完了したら、実際にアプリを配布してみます。
事前に、アップロードするアプリのファイルをダウンロードしておきます。
ファイルはビルド履歴の詳細画面にある「Download」-「Download build」でダウンロードできます。
013

次に、配布管理画面の右上にある「Distribute new release」をクリックすると、配布するアプリをアップロードする画面が表示されるので、「Release: Upload .ipa file」をクリックします。Windows環境であれば、「ファイルを開く」といったメニューで表示されるファイル選択画面が表示されるので、アプリのファイル(ここでは、iOS用アプリなので、.ipaファイル)を選択します。
010

すると、勝手にアプリのアップロードが開始されます(先ほどクリックした枠の上側に青くて細いプログレスバーで「アップロードしてます」アピール)。
アップロードが終了すると、アプリの概要が表示されるので、右下の「Next」をクリックします。
011

012

配布対象グループを選択し、「Next」をクリックします。
014

配布前の確認画面が表示されるので、「Distribute」をクリックします。
015

この時点で、配布対象ユーザに対してこんな感じのメールが送信されます。
016

この中にある「See details」をクリックすると、Mobile Centerにサイトに転送されますので、「Install」をクリックしてアプリをインストールします。
017

018

019

0201
0202
0203

これで、配布対象ユーザがアプリを使用できる状態になります。

この機能を使えば手動で配布タイミングをコントロールできるようになりますが、アプリを配布するために、「ビルド→実行ファイルのダウンロード→実行ファイルのアップロード→配布実行」という作業が発生することになります。VSTSとかJenkinsとか使って自動化することもできそうな気がしますが、個人的にはリポジトリに配布用のブランチを作成+配布用ブランチに対する自動ビルド/自動配布定義を作成しておいて、配布したいときには開発ブランチから配布用ブランチにPull Requestする運用が簡単かなと思います。

次は、Tables(Azureへのデータ格納)とIdentity(外部システム認証連携?)について、あっさりと書いてみます。

(「この分野が全然できなくて書けない」とは書けない・・・)

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(アプリ配布)についてです。

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持ってない」という方には朗報だと思います。

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

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と同じなのですが、所々で違うものもあるので、次回以降でこれらの概要や相違点とかについて触れてみます。

MacやXcodeを知らないやつが始めるXamarinアプリ開発 – 目次1

Xamarinアプリ開発(iOS)でのVSTS+Xamarin Test Cloud+HockeyApp関連についての目次です。
・前準備:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamarin.html
・証明書発行 その1:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamar-1.html
・証明書発行 その1.1:http://blackssi.cocolog-nifty.com/blog/2016/12/macxcodexamarin.html
・証明書発行 その2:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamar-2.html
・証明書発行 その3:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamar-3.html
・開発ツールインストール:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamar-4.html
・VSTSエージェント環境作成:http://blackssi.cocolog-nifty.com/blog/2016/11/macxcodexamar-5.html
・VSTSビルド定義作成:http://blackssi.cocolog-nifty.com/blog/2016/12/macxcodexamar-1.html
・HockeyAppとは:http://blackssi.cocolog-nifty.com/blog/2016/12/macxcodexamar-2.html
・VSTSとHockeyAppの連携:http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamarin.html
・HockeyAppからのアプリ展開:http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamar-1.html
・HockeyApp SDKの使い方:http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamar-2.html
・VSTSとXamarin Test Cloudの連携 その1:http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamar-3.html
・VSTSとXamarin Test Cloudの連携 その2:http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamar-4.html

MacやXcodeを知らないやつが始めるXamarinアプリ開発 – VSTSとXamarin Test Cloudの連携 その2

VSTSのビルド時にXamarin Test CloudでのUIテストを実行させるには、Xamarin Test Cloudタスクを追加します。
001_3

今回設定した項目は以下の通りです。
002_3

・App File
 Copy Toタスクの後であれば、"$(Build.ArtifactStagingDirectory)/**/*.ipa"で問題ありません。
・Team API Key
 その1(http://blackssi.cocolog-nifty.com/blog/2017/01/macxcodexamar-3.html)でテストデバイス設定時にコマンドラインが表示されてたと思います。
 →mono packages/Xamarin.UITest.[version]/tools/test-cloud.exe
     submit yourAppFile.ipa [~(1)~]
     –devices [~(2)~] –series "master" –locale "ja_JP"
     –user [~(3)~]
     –assembly-dir pathToTestDllFolder
 Team API Keyは[~(1)~]の内容を設定します。ベタで指定しても動作しますが、一応キー情報ですので、Variableにシークレット状態で登録した変数を使用してます。
・User Email
 先ほどのコマンドラインの[~(3)~]の内容を設定します。こちらもシークレット状態にしています。
・Devices
 先ほどのコマンドラインの[~(2)~]の内容を設定します。こちらもシークレット状態にしています。
・Test Assembly Directory
 "$(Build.SourcesDirectory)/[UIテストのプロジェクト名]/bin/Debug"で問題ないはずです。
・System Language
 "Japanese (Japan)"を選択します。

あとは、ビルドを実行すれば、Xamarin Test Cloudでテストが実行されますが、アプリ転送と実機の空き待ちで時間が多少かかります。
003_3

長々と書いてみましたが、Xamarinアプリを開発するにあたって、「Xamarin Test Cloud/HockeyAppってたまに聞くけど何者?」とか「VSTSと連携できるの?」といった疑問を持たれてる方には、ざっくりとしたイメージはつかんでいただけるかなと思います。

さて、続いては、「Connect(); // 2016」で発表された「Visual Studio Mobile Center」についてまとめてみます。
基礎は「VSTS+Xamarin Test Cloud+HockeyApp」ですので、今回の一連の内容を見ていただいても損はないと思います。

MacやXcodeを知らないやつが始めるXamarinアプリ開発 – VSTSとXamarin Test Cloudの連携 その1

Xamarin Test Cloudは、多数の実機(2000種類以上!!)を使って自動UIテストが実行できるクラウドサービスです。
「たくさん使ってほしいけど、エミュレータの種類もそんなにないし、お金かかるから実機もたくさん持てない」といった場合には非常に有益なサービスになります。
有償サービスであり、個人で使用するには高額($99/month~)ですが、30日のトライアル期間があります。

最初にXamarin Test Cloud側でテスト対象デバイスの設定が必要です。
画面でテスト対象とする機種を選択していきます。最後にテストをコマンドで実行するときのコマンドラインが表示されますが、この内容は必ず保存してください(VSTSとの連携設定で必要になります)。
001_2

002_2

003_2

004_2

005_2

次にVSソリューションの設定です。
UIテストのサービスですので、ソリューションにUIテストのプロジェクトが必要です。また、プラットフォーム用プロジェクトに「Xamarin.TestCloud.Agent」をNuGetから追加します。
あと、iOSだけですが、AppDelegate.csのFinishedLaunching()に"Xamarin.Calabash.Start()"を入れておきます。
006_2

テストロジックのサンプルはこんな感じです。
007_2

・"HomePage:HockeyApp"が表示されるまで待つ
・スクリーンショットを撮る
・"メンバーリスト"をタップする
・"MemberList"が表示されるまで待つ
・スクリーンショットを撮る
・"Futamura Haruka"をタップする
・前画面に戻る
・スクリーンショットを撮る
・"MemberList"が表示されるまで待つ
・"Akane Takayanagi"をタップする
・前画面に戻る
・スクリーンショットを撮る
・"MemberList"が表示されるまで待つ
・前画面に戻る

ちなみに、このテストを実行するとこんな感じになります。
008_2

009_2

010

「Device Log」でログを取得したり、「Full Size」できれいな画面イメージを取得したりもできます。

次は、VSTSのビルド定義の連携設定についてです。

MacやXcodeを知らないやつが始めるXamarinアプリ開発 – HockeyApp SDKの使い方

今回は、HockeyApp SDKの使い方についてです。
SDKはHockeyAppサイト(https://hockeyapp.net/releases/)に対象OSごとに分かれてダウンロードできるようになっています。
Xamarinの場合、安定版(Stable)は他のOSと同様で個別ダウンロードですが、PreRelease版はNuGetに対応しています。
PCLプロジェクトと個別プロジェクト(Android/iOS/UWP)プロジェクトのそれぞれに対して、"HockeySDK.Xamarin"をインストールします。

次は個別機能の使い方です。若干使いずらいところですが、対象プラットフォームごとに記述が微妙に異なります。
とりあえずはCrash Report/User Metric/Custom Eventsの3点についてまとめてみます。
※今回、UWPについては省略します。
[iOS]
〇Crash Report
AppDelegate.csに「using HockeyApp.iOS」と、FinishedLaunching()に以下のロジック(青枠部分)を追加します。
(Xamarin Test Cloud関連がありますが、ここでは無視してください(;^ω^))001

これだけで、クラッシュ時のレポートがHockeyAppサイトに上げれるようになります。
(クラッシュ後の再起動時に、こんな画面が表示されます)
002

HockeyAppサイトでは、こんな感じで取得されます。
008

クラッシュイベントをクリックすると、以下のような詳細情報が表示されます。
009

〇User Metrics
Crash Reportのロジックで自動的に取得されます。取得したくない場合は、StartManager()の前に「manager.DisableMetricsManager = true;」を追加します。

〇Custom Events
基本的にPCLプロジェクト側にロジックを実装することになると思います(「何かのボタンをクリックした」とか)。
イベントを発生させたい部分に「using HockeyApp」と「MetricsManager.TrackEvent("[イベント名]")」を追加します。
※イベント名に日本語を使うとうまく動かなかったので、英数字のみで指定したほうがよさそうです。

例えば、ListViewでグループのメンバーリストを表示し、どのメンバーがクリックされたかを取得したい場合、OnSelected()にTrackEvent()を実装します。
003

004

ここでは、リスト内の下段にあるローマ字での名前(MemberクラスのUserCounterNameに格納)をカスタムイベント名としています(例:「二村春香」をクリックするとイベント名は"Futamura Haruka")。

HockeyAppのサイトでは、こんな感じで集計されます(「Event Name」に"Futamura Haruka"があります)。
006

[Android]
〇Crash Report
MainActivity.csに「using HockeyApp.Android」と、OnCreate()に以下のロジック(青枠部分)を追加します。
※青枠以外はXamarin Test CloudやMetric用なので(略
005

〇User Metrics
MainActivity.csに「using HockeyApp.Android.Metric」と、OnCreate()に以下のロジック(青枠部分)を追加します。
007

〇Custom Events
iOSと同じです。

簡単なロジック追加で、HockeyAppの機能(クラッシュレポート/メトリック取得など)が使えるようになるのが実感できるかと思います。
次は、Xamarin Test Cloudとの連携についてです。