読者です 読者をやめる 読者になる 読者になる

しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Xamarin.iOS で Microsoft Band からセンサーデータを取得したい(失敗)

ついに Microsoft Band を手に入れました!

f:id:matatabi_ux:20150412182539j:plain

画面表示は簡素な分、センサー類が充実している印象でバッテリーの持ちもよさそうです

手に入れたからには実装されているセンサーデータを利用してみたい!

Microsoft Band の SDK やサンプルコードは下記のページにありました

Microsoft Band - Developers

f:id:matatabi_ux:20150412183149p:plain

最初 WIndows Phone で試そうかと思ったら、エミュレーターからは Band とペアリングできず・・・ということで実機を持っている iPhone で試してみます

Xamarin.iOS 用の Microsoft Band サンプルは下記にありました

github.com

これを Clone して Microsoft-Band-SDK-Bindings/Demos/Microsoft.Band.Sample/Microsoft.Band.iOS.Sample.sln を開いてみました

f:id:matatabi_ux:20150412192048p:plain

読み込めない?!

エラーメッセージを見ると

D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj : error  : プロジェクト ファイル 'D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj' を開けません。

プロジェクトのサブタイプがありません。
サブタイプ '{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC}' はこのインストールでサポートされていません。

・・・こっこれは Xamarin Studio 限定だぴょん♪ の予感

Microsoft.Band.iOS.csproj を直接開いてみると

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <ProjectGuid>{A5D3F484-DFD7-4C75-9FF6-ACF3BDE02B49}</ProjectGuid>
    <OutputType>Library</OutputType>
    <RootNamespace>Microsoft.Band</RootNamespace>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
    <AssemblyName>Microsoft.Band.iOS</AssemblyName>
  </PropertyGroup>

  ~ 中略 ~

</Project>

<ProjectTypeGuids> がだめそうなので、Visual Studio で Xamarin.iOS の ClassLibrary を作ったときに生成される値で下記のように変更してみました

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <ProjectGuid>{A5D3F484-DFD7-4C75-9FF6-ACF3BDE02B49}</ProjectGuid>
    <OutputType>Library</OutputType>
    <RootNamespace>Microsoft.Band</RootNamespace>
    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
    <AssemblyName>Microsoft.Band.iOS</AssemblyName>
  </PropertyGroup>

  ~ 中略 ~

</Project>

再読み込みしたら今度は別のエラー!

D:\02_Users\Documents\GitHub\Microsoft-Band-SDK-Bindings\Microsoft.Band\Microsoft.Band.iOS\Microsoft.Band.iOS.csproj : error  : 要素 <Target> の属性 "DependsOnTarget" は認識されていません。
C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets

Binding 失敗・・・少し調べてみたらこんな情報がありました

Bug 27309 – The attribute "DependsOnTarget" in element <Target> is unrecognized

Brendan Zagaeski 2015-04-09 11:16:31 EDT
Support for iOS bindings projects in Visual Studio is a new feature starting in XamarinVS 3.11 (currently on the Alpha channel).

This bug was originally filed against XamarinVS 4.0 (C6), but that version has not been released yet, so I suspect the actual version might have been one of the XamarinVS 3.9 versions.

どうやら Xamarin for Visual Studio の不具合らしい

・・・開発中の 4.0 での報告があがってるようなのでここで修正されるかもしれませんが、現時点の最新版が 3.9.547 なので直ってるわけがなく

ということは現時点では Windows で Xamarin.iOS から Microsoft Band に接続するアプリを作れないってことですかね;