Xamarin(その2) Advent Calendar 2016 の 11 日目です。Visual Studio for Mac が公開され、新しいもの好きとしてすぐ喰いつきました。そこで色々ハマったことを Tips 的にまとめたいと思います。
#きっかけ
JXUG 福岡支部が発足され、12/10 に発足記念勉強会が開催されました。その事前準備で色々ハマったことがきっかけでした。
#使った環境
- macOS 10.12.1
- Visual Studio for Mac Preview 2
- Xcode 8.1
- iPhone 6 Plus(iOS 10.1.1)
- GALAXY S SC-04E(Android 5.0.1) ※ SIM なし
#使用コード
勉強会前は Xamarin.Forms のスケルトンアプリ(「Welcome to Xamarin Forms!」表示のみ)を使用しました。勉強会後は、JXUGC #21 のハンズオンのコードを使わせてもらっています。ハンズオン手順書はこちら。
#ハマり問題 〜Android 編〜
##勉強会事前準備中
MacBook Pro (Retina, 15-inch, Late 2013) で Android 実機接続後、実機を指定してビルドを実施。複数のエラーが出力されるが全て以下のエラーでした。
Unable to find application Mono.Android.Platform.ApiLevel_24 or Xamarin.Android.Platform
この時にやったこととしては、以下の通りです。
- 事前準備のためにインストールした Android SDK 7.1.1(API 25)を全てアンインストール
- Visual Studio for Mac の Android Application の Minimum Android version/Target Android version を Android 6.0(API level 23)で統一
ひとまず以上をやったことで SC-04E に Xamarin.Forms アプリをインストールできることは確認しました。
##勉強会後
iMac (21.5-inch, Mid 2011) で Advent Calendar ネタ準備のために同じ環境を用意して Xamarin.Forms スケルトンアプリを作成。エミュレーターで動作確認後、実機にインストール。まさかの正常インストール成功。正常に実機で動いてしまったという…。
##まとめ
再び MacBook Pro (Retina, 15-inch, Late 2013) にて Android SDK 7.1.1 をインストール。Android Application の設定を iMac (21.5-inch, Mid 2011) と同じ Minimum Level - Android 4.4(API level 19)、Target Level - Android 6.0(API level 23)に変更して実機にインストールしてみる。ここでも正常インストール成功。一体原因は何だったのか…。実機上のサンプル画像は以下のようになっています。
#ハマり問題 〜iOS 編〜
##勉強会事前準備中
ハンズオンでは「Apple Developer Program 登録推奨」とありましたが、貧乏性を発揮しました。よって、田淵義人さんが書かれた以下の記事を参考に 0 円で出来るかチャレンジしました。
Xcode 7 と Xamarin Studio Starter で1円も払わずに自作 iOS アプリを実機確認する (インスパイア記事)
結論から書くと、Xcode 8.1 / Visual Studio for Mac の組み合わせで同じようにインストールは可能でした(でも、そこそこ確認に時間はかかりました)。
##勉強会後
Android 同様、事前準備では MacBook Pro (Retina, 15-inch, Late 2013)、Advent Calendar ネタ仕込みのために iMac (21.5-inch, Mid 2011) を使用しています。Xamarin.Forms スケルトンアプリをフリープロビでインストールできました。再度、ハンズオンのアプリをインストールするために MacBook Pro (Retina, 15-inch, Late 2013) に接続した時、問題発生。
iMac の認識デバイス
MacBook Pro の認識デバイス
まさかのデバイス認識しない問題発生(心の中では大きくガッツポーズ)。
##よくあるパターン
とはいえ、そう珍しいことでもなかったりします。構成プロファイルを作成し、iOS デバイスに構成プロファイルをインストールさせるツールで Apple Configurator 2 というものがあります。AC2 がデバイスを認識していると、その他のツールで iOS デバイスが認識されないケースがあります。この時 AC2 が起動中でした。よって、AC2 を終了させて Visual Studio for Mac を再起動してから確認。まだ認識されず。
##よくあるパターン 2
AC2 同様に iTunes が起動していたり、その他デバイスを認識するようなツールが起動中だとデバイスが認識されないケースがあります。この時は iTunes が起動中でした。AC2 の場合と同じように iTunes 終了後に Visual Studio for Mac を再起動。やっぱり認識されず。
##やってみたこと
エラーメッセージなどは特に出ていないので正直お手上げな状態でした。「ひとまずビルドしてみよう」と思いたち、Debug モードを変更して実行してみることに。具体的には以下のような変更です。
この状態のエラーメッセージで何か情報を得られないだろうか?というのが動機です。結果、
というダイアログが表示されました。「まぁ、そうだよな」と思っていたのですが…。
なんかインストールされてるっぽい…。おもむろに起動してみる。
Qiitaに1件も投稿していない時の画像アップロード容量の上限は月間2MBまで
初投稿だったからか…。
##まとめ
画像はアップロードできませんでしたが、何故かインストールが成功し正常に動かせることは確認しました。一体何が起きているのだろうか…。
#総括
「ハマったことを Tips 的にまとめたい」と最初に書いておきながら、iOS は何かよく分からないけどインストールされた、Android においては再現できずに正常に動いてしまう、というグダグタな結果になりました。明らかに準備不足でした。きっと リリース版は楽にインストールできるはずです…。