Developer's Code

プログラム開発支援ブログ

Developer's Code

Visual Studio 2017を用いたマルチプラットフォーム開発(Xamarin)~ デバッグ編

 

はじめに

前回作成した、新規プロジェクトをデバッグ実行するまでを下記に示します。

 

UWPデバッグ実行

UWPアプリケーションのデバッグは、以下の構成でデバッグ実行します。

f:id:tomomo_s:20170528221154j:plain

 

「►ローカルコンピューター」を押下し、デバッグを実行します。

実行後、以下の画面のように、UWPのアプリケーションが起動します。

※空プロジェクトでは、画面表示に「Welcome to Xamarin Forms!」と表示される。

f:id:tomomo_s:20170528221304j:plain

 

Androidデバッグ実行

Androidアプリケーションのデバッグは、以下の構成でデバッグ実行します。

f:id:tomomo_s:20170528221613j:plain

 

Androidエミュレータが起動するため、かなりスペックが必要となります。

※筆者のビルド環境は、以下の通りですが、起動に時間が掛かってしまいます。

 Core i7&16GB以上の環境で行った方が、ストレスはないと思います。

  • CPU:Core i5(7th)
  • メモリ:8GB

 なお、Androidデバッグの場合は、ソリューション(Xamarin.Android)から、「配置」を行わないとデバッグ実行できないかもしれません。

 

実行後、以下の画面のように、Androidのアプリケーションがエミュレータ上で起動します。

f:id:tomomo_s:20170529205035j:plain

 

iOSデバッグ実行

iOSアプリケーションのデバッグは、以下の構成でデバッグ実行します。

f:id:tomomo_s:20170528225030j:plain

 

ここでのiOSデバッグ実行は、Simulatorを使用しますが、デバッグ実行するには、Mac側の実機が起動していることが前提条件となります。

また、Mac側に予め下記に示す設定が必要となります。

 

環境設定から、共有フォルダの設定画面を表示します。

f:id:tomomo_s:20170528225545j:plain

 

共有フォルダの設定にて、「リモートログイン」を有効にします。

f:id:tomomo_s:20170528225632j:plain

 

リモートログインのアクセス権限として、Macのログインユーザーを設定します。

f:id:tomomo_s:20170528225643j:plain

 

「►Simulator」※を押下し、デバッグを実行します。

 接続可能な、Macの機器が表示されます。同一LAN内であれば表示されると思います。

※表示されない場合は、Macの追加にて、「IPアドレス」で追加します。

f:id:tomomo_s:20170528230422p:plain

 

Macのリモートログインの「ユーザー名」「パスワード」を入力し、「ログイン」を押下します。

f:id:tomomo_s:20170529201652j:plain

 

実行後、以下の画面のように、iOSのアプリケーションがエミュレータ上で起動します。

f:id:tomomo_s:20170529201814j:plain

 

注意事項

UWPでのビルドおよびデバッグは、Windowsの設定で、以下のように「開発者モード」にチェックを入れておく必要があります。

f:id:tomomo_s:20170529210354j:plain

 

Androidでのビルドおよびデバッグは、Visual StudioAndroidプロパティ設定で、以下のように「Fast Deploymentの使用(デバッグモードのみ)」のチェックを外す必要があります。

※デフォルト設定は、チェックオンになっています。

※これを外さないとエミュレータの場合、アプリケーションが起動しません。

 実際に、これでハマりましたので、気を付けてください。。。

 デフォルトはオフ設定にしてVisual Studioをリリースして欲しいものです。(笑)

f:id:tomomo_s:20170529210433j:plain

 

iOSでのビルドおよびデバッグは、Visual Studio 2017 Version 15.2 の場合、下記エラーメッセージが表示されます。

Xamarinの障害(バグ)かと思います。

Can not resolve reference: C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/ja/mscorlib.resources.dll

 

対処方法は、以下の通りです。

Visual Studioのインストールフォルダより、ターゲットファイルを編集する必要があります。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Xamarin

上記のファイルを開き、PropertyGroupに下記を追加します。

<FrameworkPathOverride>$(TargetFrameworkRootPath)$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)</FrameworkPathOverride>

 例)

<PropertyGroup>
<XamarinAppleSdkTargetsImported>true</XamarinAppleSdkTargetsImported>
<FrameworkPathOverride>$(TargetFrameworkRootPath)$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)</FrameworkPathOverride>
</PropertyGroup>

 

また、今回、Xamarinというプロジェクトを作成したのですが、Xamarin.iOSの場合、アセンブリ名が被るらしく、下記のビルド時エラーが発生します。

f:id:tomomo_s:20170529202136j:plain

Application name 'Xamarin.iOS.exe' conflicts with an SDK or product assembly(.dll)name.

 

そのため、Xamarin.iOSのプロパティから、アセンブリ名「Xamarin2.iOS」、限定の名前空間「Xamarin2.iOS」に名前を変更しました。

※「Xamarin」という製品名の名前をプロジェクトに付けたのが迂闊でした(笑)

f:id:tomomo_s:20170529202150j:plain