Xamarinでプロジェクト名を含める場合に気をつけるべきこと
今回ハマったこと
今回は、Xamarin Studioを使ってXamarin.Formsプロジェクトを作ってみました。 そしたら、いきなりビルドエラーになってしまったというお話。
結論としては、
• App Nameにはアプリ名だけを入力しよう。App Nameにプロジェクト名.アプリ名という入力は、ビルドエラーになります。(解決方法は、#どこを修正したのか?を見てください)
• プロジェクト名はOrganization Identifierに含める(infoにも書いてあります)
• Xamarinをプロジェクト名に含めるのはやめた方がいいです。
もしかすると下記のような人が検索で引っかかってしまったら、この辺がオススメです。
・Xamarin Studioインストールしてみたいという方
・Xamarin.Formsとはなんぞやということを知りたい人
https://www.xlsoft.com/jp/products/xamarin/forms.htmlwww.xlsoft.com
どんなエラーが出たの?
今回は「Test.MobileApp」というApp Nameをつけてみました。
どこを修正したのか?
でも何てことはない、クラス名に「.(ドット)」が入っているだけではないですか。
エラーにもしっかり、書いてあります。こう言う時、C#というよく知る言語だと落ち着いて対処できますね。 (知らない言語やツールを使ってエラーが出ると簡単なエラーで焦って失敗するのは私だけでしょうか。)
[Test.MobilAppPage.xaml.cs]
using Xamarin.Forms; namespace Test.MobileApp { public partial class MobileAppPage : ContentPage { public MobileAppPage() { InitializeComponent(); } } }
そして、もちろん。対になっている「Test.MobleAppPage.xaml」も直します。 この辺もasp.netなどに似てますね。(WPFは開発したことがないので、多分似ていると思います。)
[Test.MobleAppPage.xaml]
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Test.MobileApp" x:Class="Test.MobileApp.MobileAppPage"> <Label Text="Welcome to Xamarin Forms!" VerticalOptions="Center" HorizontalOptions="Center" /> </ContentPage>
これで動くだろうと思ったのですが、iOSのデバッガで起動すると「Welcome to Xamarin Forms!」が表示されません。 なぜだ・・・。と思っていたら、iOS側で「Info.plist」も変えてあげる必要がありました。 [Info.plist]
android側の「AndroidManifest.xml」も同様に変更してあげます。
変更は以上になります。
これで無事、iOSのデバッガで「Welcome to Xamarin Forms! 」と表示されました。
ちなみに最初の結論に記述した「Xamarinをプロジェクト名に含めるのはやめた方がいいです。 」については、 Xamarinの名前空間とかぶってしまうので、やめた方がいいです。 もちろん、globalをつけるとか回避策はありますが、面倒なことこの上ないのでオススメできません。 ちなみにXamarinAppみたいな名前は問題ありません。
まとめると、よく読まずにAppNameにアプリの名前以外を含んでしまったら、ビルドエラーになって困ったというおちょっこちょいなエラーでした。 忘れてもいいように。