あいてぃーとふぼふ

APP HUBにアプリの更新を申請する際の注意事項!

既存のアプリケーションをWindows Phone 7.5にアップグレードした後で、APP HUB(アップハブ)にアプリの更新を申請する際につまずいたポイントをご紹介します。

その1:NeutralResourcesLanguage属性は必須!

APP HUBから、更新する対象となるXAPファイルをアップロードした際に、右図のような「エントリ アセンブリに [NeutralResourcesLanguage] 属性が存在しません。」エラーが発生しました。どうやらXAPファイルにNeutralResourcesLanguage属性を付与する必要があるようです。方法は簡単でして、メインとなるプロジェクトの「AssemblyInfo.cs」に[assembly: NeutralResourcesLanguageAttribute("ja-JP")]と記述すればOKです(名前空間はSystem.Resources)。これで再度XAPファイルをアップロードすれば問題は解決…

…とはいきませんでした。今度は左図の「更新プログラムでサポートする言語の数は、更新前のアプリケーション インスタンスでサポートしていた数より少なくできません。」エラーが発生しました。要約すると、どうやら「前回はカルチャを英語で申請したんだから…今回も英語にしなさいよね!」ってことらしいです。ですので、先程の記述を[assembly: NeutralResourcesLanguageAttribute("en")]に変更して、再度XAPファイルをアップロードすることにより問題は解決しました。

なおこれは、アプリケーションをWP7.5用にアップグレードする際の問題です。このため、RC版のWPSDK7.1からプロジェクトを新規に作成した場合はあらかじめNeutralResourcesLanguage属性が定義されていますので、上記の問題には遭遇しないハズです。ただし、例によって「Windows Phone Silverlight/XNA アプリケーション」は少し詰めが甘く、なぜかNeutralResourcesLanguage属性が定義されていませんでした。このため、RC版のWPSDK7.1において作成したSL+XNAアプリケーションを申請される方は、上記のエラーにご注意ください。

その2:韓国とブラジルは面倒くさい!

どうせなら、日本だけでなく全世界にアプリケーションが公開されるように設定して申請を完了しようとしたところ、申請手順の最後に左図のような「DJCTQ評価と認定の少なくともどちらかがありません」エラーと「GRB評価と認定の少なくともどちらかがありません」エラーが発生しました。う~ん…パッと見だと何が悪いのかよくわかりません(汗。

APP HUBの申請手順において、左図のようにアプリを公開する国を選択する画面があるのですが、よくみると韓国(GRB)とブラジル(DJCTO)にのみアスタリスク(必須マーク)が付加されていました。しかも、何やらファイルをアップロードする欄が設けられています。つまり上記のエラーを要約すると、アプリケーションを韓国もしくはブラジルに公開する場合は、ファイル的な”何か”を指定する必要があるみたいです。その”何か”がなにかはよくわかりませんが…今回は韓国とブラジルへの公開は諦める(上記の画面からチェックを外す)ことにより妥協しました。そもそも「GRB」とか「DJCTO」って…なんだろう?(´・ω・`;)

残るは審査が通るか否か!

以上が、更新の申請時につまずいたポイントです。なお今回の更新では、色々と実験的な要素を盛り込んでいるため、一発で審査に通るかどうかは微妙です。

例えば、今回はSL+XNAという技術を利用してアプリケーションを再構築しており、SL+XNAが審査規約の4.2.5に抵触しないことを確認したいと思います。また今回は、意図的にアプリケーションを終了させる際にSilverlightからXNAのGame.Exitメソッドを利用しています。この方法は本来、審査規約の4.2.5に抵触する方法なのですが、仮にSL+XNAが上記の審査規約に抵触しないのであれば問題はないハズ…といったような実験を多数盛り込んでいます。

もし審査に落ちたとしても、それはそれで初めての経験ですので得るものは大きいのですが。…それでもやはり、願わくば一発で通ってほしいものです…|д ̄) …ということで「MetroGnome」の国内公開まで今しばらくお待ちいただけましたら幸いです!m(_ _;)m

AppHubリニューアルと恐怖のクラッシュレポート!

WindowsPhone7のアプリを申請する際の窓口となるAppHub、そのサイトがリニューアルされました!

新機能は…他サイトを見てね!

日本の通貨やβテストへの対応など、色々と機能が追加されている模様です。この辺りの詳細は以下のサイト(ななふぉさん)などをご参照ください。
App Hub がリニューアルして日本にも対応。最安値は90円
べ…別に面倒臭いってわけじゃないんだからねッ!ξ〃△〃)ξ

クラッシュカウント&レポート!

色々と機能が追加されているわけなんですが、なかには「クラッシュ回数」なる機能も追加されています。これは、アプリケーションがエラー終了した回数をグラフ形式で参照できるというなかなかに涼しげな機能です。正直あまり見たくはありませんが、わたしが公開しているアプリケーションも結構クラッシュしている模様です(左図参照)。

また、クラッシュ時にどんな例外が発生したかというレポートも、Excel形式のファイルとして参照することが可能です(右図参照)。

ちなみに、上記クラッシュレポートのうち上段のクラッシュは、意図的に例外をスローしてアプリケーションを終了させるためのクラッシュです。下段のクラッシュは…なんだろう?…あ、そういえば (´゚Д゚`)!

TransitionServiceには気を付けて!

記事にするのをすっかり忘れていましたが、「Silverlight for Windows Phone Toolkit」に含まれているTransitionServiceを利用する場合は気を付けてください。そもそもTransitionServiceとは、Silverlight製WP7アプリの各画面にトランジション(画面遷移時のアニメーション)を付与することのできる便利な機能です。…なのですが、上記を利用している画面で特定の操作を行った場合に、アプリケーションがクラッシュする可能性があります。

それは、トランジションを設定した画面において、他画面に遷移している最中(トランジションが再生される時)に戻るボタンを押下するとかなりの高確率で例外が発生するというものです。この現象はToolkitのサンプルデモでも発生しますので鉄板です。ということで、上記クラッシュレポートの下段はこの現象によるものでしょう。…たぶん(汗

なお、上記Toolkitは今月中に更新される予定ですので、この不具合も修正されているかもしれません。

納涼にはもってこい?

ということで、この暑い季節に身の毛もよだつクラッシュレポート。みなさんも試してみてはいかがでしょうか?(ーωー;)

1000×800サイズの重要性!

一部のWindowsPhone7開発者にのみ配布されている最新版(Ver4.8)の「Zune」では、試験的に日本語対応がされています。ちなみにZuneとは、WP7とパソコンを同期させるためのアプリケーションソフトでして、ありていにいえばMS版「iTunes」です。この日本語対応版Zuneにおいて、ひとつ気付いた点がありましたので以下に記載しておきますね。

1000×800サイズの画像がこんなところにも!

Zuneが日本語対応されるにあたり、日本語OSにインストールしたZuneからでも「Marketplace」…つまりMS版「AppStore」を閲覧できるようになりました。ですので、以前公開した「MetroGnome」を何気なしに検索してみたところ、左図のように背景画像が設定された状態で表示されました。これはどうやら、AppHubにアプリケーションを申請する際に指定した「1000×800」サイズの画像のようです。なお、AppHubのアプリケーション申請に関しては以下の記事をご参照ください。
実録☆WP7アプリケーション開発!(第9話)

1000×800サイズの画像は指定すべし!

AppHubにアプリケーションを申請する際に、「1000×800」サイズの画像は任意指定となっています。このため「1000×800」サイズの画像はあまり利用されないものと思っていたのですが、Zuneでこのように利用されるとなると、任意指定の割にかなりインパクトが大きいですよね。ということで、これからAppHubにアプリを申請される方は、すこし手間でもキチンと「1000×800」サイズの画像を作成してあげた方がよいかもしれません!(`・ω・´)ゞ

ちなみに「1000×800」サイズの画像は、非透過のPNG画像である必要がありますので注意してください。この辺りの詳細は以下の記事をご参照くださいね。
実録☆WP7アプリケーション開発!(第8話)