2014年06月18日

Xamarin.Formsで実機デバッグが出来なくなった話

多分期間限定な内容だと思います。

現象を箇条書きすると
・Visual Studio 2013でXamarin.Forms使ったiOSアプリを作っている
・Mac上のiOSシミュレータでは問題なくデバッグ可能
・実機でデバッグしようとすると配置でエラー
・MacのXamarin Studioで同じソリューション使うと配置可能

配置時のエラーはこんな感じ。
xamarin.forms.error00.PNG
MT2002:Failed to resolve "Xamarin.Forms.TextCellStyle〜”って出てます。(検索用文字列ということで)

上の文字列で検索するとXamarinのForumでこんなのが
http://forums.xamarin.com/discussion/comment/56841/#Comment_56841

Mapsの話みたいですが、Nugetで最新にしてみたら?とかなんとかって書いてある、、、ような気がします。

ということで、この前作ったローカライズのプロジェクトと今回のプロジェクトを比較してみると
xamarin.forms.error01.PNG
(上が配置に失敗するプロジェクト、下が成功するプロジェクト)

上の1.1.0.6201は2014/6/12リリース
下の1.0.6186は2014/6/4リリース
先ほどのForumで言っている最新バージョンは下のバージョンですね。


ということで試しに下のバージョンを入れてみます。
こんな感じ。
xamarin.forms.error02.PNG


すると、めでたくVisual Studioから実機へ配置ができるようになりました。

Xamarin.Formsは今どんどん新しいバージョンが出ているし、今後どうなるのかもわからないので、2014/6/18時点でのどうにかする方法でした。


続きを読む
posted by ぷにお at 18:00 | Comment(0) | Xamarin | このブログの読者になる | 更新情報をチェックする

2014年06月12日

Xamarin.Formsでローカライズ(XAML編)

前回の続き

Xamarin.Formsの売りはやっぱりXamlですよね?ストアアプリあたりと互換性があったら間違いなくそうなっていたと思います。
とりあえず今は静観状態なんですが、ついでなのでXAMLでのローカライズ方法。(ネット見つけた方法なのでほぼそのままです)

試用するのは前回のソリューションなので本当に続きから。

まずIMarkupExtensionを実装したクラスを作ります。


次にForms Xaml Pageを追加します。
名前はXamlPage.cs
localize10.PNG

できたXAMLはこんな感じ。


これをこんな感じに変更。

5行目でクラスを見れるようにして、LabeのTextの中身を変更です。

これは簡単だと思いました。

あとはなぜかContentPageを継承していないXamlPage.xaml.csに継承を追加して、localize11.PNG

App.csを書き換えてあげるだけ。
localize12.PNG


実行結果がこちら。
localize14.pnglocalize13.png


簡単でした。

ということで前回と今回のが混ざった奴をGitHubにあげてみました。(うまくあがってるかな?)
https://github.com/punio/LocalizeSample

おしまい


posted by ぷにお at 16:05 | Comment(0) | Xamarin | このブログの読者になる | 更新情報をチェックする

Xamarin.Formsでローカライズ

Xamarin3で追加された話題のXamarin.Formsをさっそくつかってさっそくはまりまくっている今日この頃。

ローカライズに悩んでいたわけですが、何とか解決したので投稿してみます。

まずVisual Studio 2013で新しいプロジェクトを作ります。
(私はVS大好き人間なのでVSオンリーです。Xamarin Studioのことは知りません)

作るのはテンプレート内の[Mobile Apps]→[Blank App (Xamarin.Forms.Portable)]です。
localize1.PNG
これはXamarin.Formsのチュートリアル(?)通りですね。

そのままiOSシミュレータで動かすとこんな感じ。
localize2.png


あまり面白くないですが楽なので「Hello, Forms!」の文字列を実行したOSのカルチャに合わせてみます。


まず、ソリューション内に新しい項目を追加します。
localize6.png
追加するのは「アセンブリリソースファイル」で、ファイル名は今回は「String.resx」にしました。


やることは.Net使っている方ならおなじみな感じの事ですね。
localize3.PNG
「Hello」という名前の文字列を定義して、アクセス修飾子をPublicに変更。

次に「String.ja.resx」を作成して「Hello」を定義します。
localize7.png

これでロケールが日本語なら「こんにちは」、それ以外なら「ハロー」と出てくれる気がしますね。


最後にApp.csを下のように書き換えます。


StackLayoutと下のラベルは現在のカルチャを出すためのものなので無視してください。

デフォルトと違うのは上のラベルの
Text = Strings.Hello,ってところだけですね。

これで実行すると、
localize4.pnglocalize5.png

ちゃんと変わってくれました。
posted by ぷにお at 15:03 | Comment(0) | Xamarin | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。