LoginSignup
9
9

More than 5 years have passed since last update.

Xamarin.Mac+MvvmCrossでアプリ開発を始める準備の準備(2014年3月)

Last updated at Posted at 2014-03-03

Problem

Xamarin.Android, Xamarin.iOSの話ばかりでXamarin.Macの話題がなかなか出ません。
ということでMvvmCrossを使ってXamarin.Macアプリ開発をする準備の準備です。これでようやくスタートラインに立てます。

3.1.1時点のNuSpecではXamarin.MacプロジェクトにMvvmCrossを追加すると・・・
Screen Shot 2014-03-03 at 4.32.58 PM.png
これではもうどうしようもありません。ちなみにMonoMacプロジェクトでも同様です。現在NuSpecにMonoMac, XamMacの記述はありません。

Build

ビルドしましょう。リポジトリを下記GitHubからクローンします。
https://github.com/MvvmCross/MvvmCross
開くのはMvvmCross_Mac.slnです。
kobito.1393832441.136574.png
FirstDemo,ApiExamplesプロジェクトについてXamarin.Macに移行するか確認されます。インストールされていれば,Migrateしておきましょう。

初期状態でビルドできるもの

Cirrious.CrossCore
Cirrious.MvvmCross
Cirrious.MvvmCross.Binding
Cirrious.MvvmCross.Localization
Cirrious.MvvmCross.Mac
System.Windows.Mac

MSBuildエンジンではビルドできないもの

kobito.1393832702.160555.png
Use MSBuild build engineのチェックボックスをオフにします。
Cirrious.CrossCore.Mac
Cirrious.MvvmCross.Binding.Mac

Try

ではApiExamples.Macプロジェクトをビルド,実行してみましょう。
事前にApiExamples.MacプロジェクトのTarget FrameworkをMono/.NET 4.5に変更しておいてください。すると・・・
Untitled.png

AppDelegate.cs(37,37): Error CS0012: The type `MonoMac.AppKit.NSApplicationDelegate' is defined in an assembly that is not referenced. Consider adding a reference to assembly `MonoMac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' (CS0012) (ApiExamples.Mac)

そうです。Xamarin.MacではMonoMacネームスペースをXamMac.dllで提供していますが,MvvmCrossライブラリが参照しているのはGPLのほうのMonoMacです。

Solution

MonoMacではMonoランタイム同梱ができないし,ライセンス的にも商用では大変困ります。
MonoMacを参照しているプロジェクト全てに対し,MonoMacからXamMac.dllへ参照を変更します。XamMac.dllは適当なXamarin.Macプロジェクトをビルドすれば配置されるのでこれを使うことにします。kobito.1393833604.628030.png
こんな具合に下記の3プロジェクトを書き換えてください。コピー&ペーストが使えます。
Cirrious.CrossCore.Mac
Cirrious.MvvmCross.Binding.Mac
Cirrious.MvvmCross.Mac

では再度ApiExamples.Macをビルド,実行しましょう。
Screen Shot 2014-03-03 at 5.06.05 PM.png

できました。しかしこのままではリリースビルドできません。
Screen Shot 2014-03-03 at 5.08.29 PM.png
Don't Link,またはLink Framework SDKs Onlyに変更してください。

できあがったDllを参照すれば自分のプロジェクトでMvvmCrossを使えるようになります。

Conclusion

Xamarin.Macが大好きです。
MvvmCross 3.1.2ではNuSpec変更の予定もあるようなので,しばらく待てばこの状況は解消されるはずです。きっと。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9