あいてぃーとふぼふ

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

Windows Phone 7.5 対応時の問題点!

今回は「Windows Phone 7.0」のアプリケーションを「Windows Phone 7.5」にアップグレードする際に遭遇した問題とその解決策をご紹介します。以前に作成した「MetroGnome」というアプリをアップグレードしたのですが、なかなかに一筋縄ではいきませんでした…orz。

その1:実行時にビヘイビアやトリガーが登録できない!

前回の投稿でご紹介した通り、Visual Studioの「Windows Phone 7.1 にアップグレード」機能を利用すると、既存のプロジェクトをアップグレードすることが可能です。ただしこの際、アプリケーションの実行時に「型 ‘Behavior’ の値は、型 ‘BehaviorCollection’ のコレクションまたはディクショナリに追加できません。」のような例外が発生する場合があります。わたしが実際にアップグレードしたプロジェクトは、自作のビヘイビアやトリガーアクションなどを格納したライブラリプロジェクトだったのですが、上記のエラーはこれらのビヘイビアやトリガーアクションがアプリ実行時に参照されたときに発生しました。

ということで、結論から申しますと「Microsoft.Expression.Interactions」や「System.Windows.Interactivity」などの参照を一旦削除してから再度登録すると、上記のエラーは解消されました。どうやら参照していたアセンブリが古かったみたいです。このようなケースでは、ビルドエラーにならず、実行時にエラーが発生するようですね。根本的な原因は調べていませんが、おそらくSilverlightのバージョンが4になったことによる弊害か、あるいはWPSDK7.1のインストール前にExpression関連のモジュールをすべてアンインストールしたためだと思います (=`ェ´=;)ゞ

その2:SL+XNAプロジェクトがBlendで編集できない!

以前の投稿で「Windows Phone Silverlight/XNA アプリケーション」を利用する場合、XNAカテゴリから生成すると日本語のコメントが付加される旨をご紹介しました。しかしながら、このプロジェクトをExpression Blendで編集しようとした場合、「App.xaml」や「Game.xaml」で左図のように「XML タグ’Application’ に対応する終了タグがありません。」のようなエラーが多数発生します。まぁ日本語が文字化けしていることを見ると、文字コードが怪しいであろうことはすぐにお判りいただけると思います。

ということで調べてみたところ、上記のプロジェクトでは、日本語でコメントが記載されているファイルがことごとく「UTF-8N」で記述されていました。つまりファイルの先頭にBOMが付加されていないわけです。ちなみにBOMとは、エンディアンや文字コードの種別に利用される情報のことで、Expression BlendはこのBOMがないとファイルの文字コードを「UTF-8」であると識別できないようです。これにより、日本語のコメントがタグごと文字化けしてしまい、今回のエラーが発生してしまいます。このため、サクラエディタなどで「App.xaml」や「Game.xaml」を「BOM付きのUTF-8」で保存してあげれば問題は解決です。それにしても、RC版にしてはちょっと詰めが甘いかも…(ノω<;)

その3:既存のスタイルを上書きできない!

Silverlightアプリを開発する場合、「App.xaml」や「Generic.xaml」でスタイルを管理するのが一般的です。「MetroGnome」でも「PhoneTextTitle1Style」や「PhoneTextNormalStyle」などの既存のスタイルを、「App.xaml」内で再定義(同一名のスタイルを定義)したりしています。こうすると、開発時には既存のスタイルを利用し、開発が完了した後に一括してスタイルを変更できるので便利なんですよね~。しかしながら、Silverlight4ではどうやら既存のスタイルを再定義することができないようです。

Visual StudioやExpression Blendのデザイナではきちんと再定義したスタイルが反映されているのですが、いざアプリを実行すると既定のスタイルが反映されてしまいます。多分ソースコードでガリガリやれば回避できそうではありますが、今回は時間が惜しかったので、自作したスタイルの名前を変更して対応しました。う~ん…泥臭い(´・ω・`)

残すは不具合修正と公開作業!

ということで、あとは細かな不具合を修正して公開するのみです!できれば曲の追加とかもしたいのですが…しばらくはちょっと無理そうかもです(T△T)。1日まるまる時間が取れれば可能だと思うんですが…なかなかどうして…orz

MetroGnome国内公開準備中!

以前に「MetroGnome」というWindows Phone 7のゲームアプリケーションを公開したのですが、これは現在、日本のMarketplaceからダウンロードすることができません。どうやら再度、アプリケーションの申請を行わないと公開されないらしいのです。そこで遅ればせながら、MetroGnomeを国内公開するべく現在作業を実施中です!どうせ日本のMarketplaceに申請するのなら、併せてWindows Phone 7.5への対応も実施したいと思います。

ちょっぴり冒険!

ついでに今回は、SilverlightとXNAを同時に利用できるWP7.5の新機能である「Windows Phone Silverlight/XNA アプリケーション」として、プロジェクトを再構築してみたいと思います。なぜかというと、かねてよりの疑問を解消したかったからなのです。具体的にどういうことかと申しますと、審査規約の4.2.5には以下のような規約が定義されているのですが…

The application must not call any APIs in the Microsoft.Xna.Framework.Game assembly or the Microsoft.Xna.Framework.Graphics assembly when using any methods from the System.Windows.Controls namespace.

これは要約すると「SilverlightのControlsを使う場合はXNAのGameやGraphicsは使っちゃダメ!」という内容なのです…たぶん。しかしながら、SilverlightとXNAを同時に利用する「Windows Phone Silverlight/XNA アプリケーション」を作成する場合、どうやったってこの規約に違反しちゃいますよね?そこでこの機会に、この疑問をクリアにしておきたいと思った次第です。それにしても…審査規約ってまだ日本語化されていないんですねぇ…(´・ω・`)

アップグレードは簡単?

ということで、今回のアップグレード作業では、メインのプロジェクトを「Windows Phone Silverlight/XNA アプリケーション」として作成しなおすわけですが、その他の自作ライブラリなどはコンバートで対応することにしました。コンバートは、Visual Studioの「Windows Phone 7.1 にアップグレード」を利用することにより簡単に実行可能です。どうでもいいですが、ソフトウェア(7.5)とOS(7.10)のバージョン表記は統一してほしかったです…(´д`;)。ということで、この状態でビルドを実行すると、ビルドエラーは一切なし!これにてアップグレード作業は完了…

問題のオンパレード!

…かと思いきや、さすがに一筋縄ではいきません!ビルドこそ通るものの、実行時に「型 ‘Behavior’ の値は、型 ‘BehaviorCollection’ のコレクションまたはディクショナリに追加できません」なんて例外が発生したり、Expression Blendで編集しようとすると「XML タグ’Application’ に対応する終了タグがありません。」なんてエラーが発生したり、挙句の果てには画面のスタイルが崩れたり…(T△T)

…ということで次回の投稿では、WP7.0アプリを7.5にアップグレードする際に、わたしが遭遇した各現象の解決策をご紹介する予定です。…解決できれば…。「MetroGnome」の国内公開まで、今しばらくお待ちいただけましたら幸いです!m(_ _;)m

Windows Phone 評価用端末プログラム!

少し遅れての告知となりましたが、「Windows Phone 評価用端末プログラム」が始まっています。べ…べつに、昨日の「からあげクン1年分」が抽選で当たるキャンペーンを聞いて思い出したわけじゃないんだからねっ!

応募資格はとってもカンタン!

ということで、わたしも先程登録を済ませました(ごめんなさい忘れてました)。当キャンペーンに応募するための資格はたったの2つ!ひとつはWindows Phone Developer Dayの動画を見ること。見たことを証明する必要はありませんが…そこはみなさん大人の判断で。ふたつめは、もし当選した場合はアプリケーションを開発して公開すること。これらの条件を満たす覚悟がある方は、以下のサイトからこのプログラムに応募してみましょう!
Windows Phone 評価端末プログラムに関して

運が良ければ…あのIS12Tがキミの手に!

たったこれだけの手順で、運が良ければ、新規契約の場合に73500円もするIS12Tが無料で手に入るかもしれません!機種変更の場合に73500円もするIS12Tがあれば、Mangoの最新機能を利用して作成したWP7.5アプリケーションを実機で動作させることが可能となります。毎月割を適用しても35100円もするIS12Tをゲットして、WP7.5アプリの開発に挑戦してみてはいかがでしょうか?

ちなみに、当選枠数は特に明記されていませんが…それって当落はマイクロソフトさんのさじ加減ってことですよね?わかります(´・ω・`)

わたしの全力全開で!

最近はもう本当に、いろいろな方々に色々な機会を与えていただきまして、感謝の気持ちで一杯です!与えていただいた機会には、わたしの全力全開でお応えさせていただく所存です!

もちろん、いつもブログをご覧いただいている方々にもお世話になっております!アクセス数などを見るたびに、スゴク元気が湧いてきます!これからも一生懸命がんばってまいりますので、今後ともよろしくお願い致します!
…いやもうホント、別にやましい気持ちとか微塵もありませんけどね!!

更新ながいっす!

前回の投稿にも記載しましたが、今月のWindows更新プログラムは13件もあります。わたしも朝からサブマシンでWindowsアップデートを実施していたんですが…なんか更新完了までに8時間くらいかかったんですけど(汗。あれは絶対、途中で電源落としちゃう人いますって~!せめて中断できればなぁ…(T△T)

日本語化ぱねっす!

現在WindowsPhone7を所持している人たちは、基本的に海外から輸入しています。このため、ユーザインタフェースの日本語表示には対応していません。しかしながら!この海外版WindowsPhone7を日本語表示にする方法がななふぉさんで取り上げられています。わたしも先程試してみましたが、いとも簡単にWindowsPhone7を日本語表示にすることができました!ちなみに情報ソースは2ちゃんねるとのことですので…2ちゃんねらーのみなさんパネっす!でもこれで夏コミに日本語版のWindowsPhone7を持っていくことができますよ~!≧∀≦)

評価版Mango配布開始!

AppHubに登録している技術者に対して、WindowsPhone7の最新版である「Mango」アップデートのβ版配布が開始されました。わたしもさっそくダウンロードして実機で評価してみましたので簡単な感想を!≧∀≦)ノ

アップデートツールが日本語!

アップデートする方法に関しては、付属していたドキュメントに従って実施すれば何ら難しいことはありませんでした。強いていえば、アップデート後にアプリケーションのデプロイができなくて戸惑いましたが、開発者アンロックを再度実施したところ問題なくデプロイできるようになりました。前述のドキュメントと併せてMS大西さんのブログを参照すれば、非常に簡単にアップデートできると思います。この手の開発者向けアップデートにしては非常に親切な印象です。

それよりもなによりも!今回のアップデートで一番うれしかったのは、アップデートに使用するツールのUIがきちんと日本語で表示されていたという点です。些細なことではありますが、日本の技術者としては非常に嬉しくなっちゃいました~♪

日本語SIPはいい感じ!

今回のアップデートでは、UIの日本語表示こそできませんが、日本語版のSIP(ソフトウェアキーボード)を使用することは可能です。まだβ版ではありますが、それでも日本語SIPの出来栄えは素晴らしいの一言です!カーブフリック入力の判定が若干シビアかなとは思いましたが、この辺りの挙動はRTM版で最終調整が入るとのこと。それを考慮すれば日本語SIPは文句のない仕上がりです(≧ω≦)

なお、日本語表示はできないと前述しましたが、[Settings]-[region+language]-[region format]を”Japanese”に設定することにより、壁紙とカレンダーのみ日本語で表示することが可能です。縦書き表示のUIというのはなかなかに面白いですよね~!

パフォーマンスが向上!

MangoのSilverlightがバージョン4ベースとなったからか、Silverlightアプリケーションの速度が向上…しているように思います。たとえば「MetroGnome」をプレイしてみると、ボタンを押したときのレスポンス(点数が更新される時間とか)が当社比1.4倍くらい高速になっています~(≧ω≦)

タスク切り替えは…あれ?

タスク切り替えもいい感じ…といいたいところなのですが。実際に使用してみると、タスク切り替え画面からアプリケーションを終了できないことに対して、個人的にスゴク違和感を覚えました。だって、じゃあアプリケーションを終了させるにはどうしたらいいのよ…と思うわけです。結論としては「終了させたいアプリケーションをアクティブにしてホーム画面が閉じるまでバックボタンを連打」すればいい訳ですけども。…それはわかりずらいですよ~(´;ω;`)

ちなみに、このことはMS高橋さんのブログも言及されておりますが、独自の見解で納得されているご様子です。でも、アプリ開発の観点から見ても終了時にTombstoneのClosingイベントが呼ばれさえすれば問題はなさそうですし…個人的にはやはり使いにくいですよコレ…って今更愚痴ってもしようがないかな。

SkyDriveとの連携!

地味にうれしいのが、今回のアップデートから実装されたSkyDriveとの連携機能です!これでいつでもSkyDrive内のオフィスドキュメントを日本語で編集できるようになりました~!(T△T)ちなみに、Excelの関数なども密かに追加されていますので、Officeメインで使いたい人もMangoならバッチリです!

結局どうなのよ?

本日、日本マイクロソフトの樋口氏からWP7の日本展開が正式に発表されました。ただし相変わらず、日本でのキャリアや発売日などの明言は避けていた模様です。なお発売日に関しては、日本マイクロソフトの締めが7月までということから、2012年の6月までには…という見解もあるようですね。

個人的に大切なのは、やはりマーケティング戦略なんじゃないのかなぁ~と思います。いくらWP7が凄かろうと人の目に触れなければ売れないわけですし。そろそろ日本での発売に向けた動きを見せていただけないと、正直なところ開発者として不安で不安で仕方がないです。ほんと、モノは凄いのですから…(T△T)