2013年7月27日土曜日

ストアアプリ審査落ちの具体例と、コンテンツ ポリシー について

画像掲示板ブラウザ futa8 は現在Windows Store に掲載されていますが、6月末、Release 5 の時に一度Store App の審査に落ちています。
その時の様子と、落とされた理由等についてまとめてみた記事です。

アプリをDashboard (Microsoft のストアアプリ開発者向けポータルサイト)から審査に提出後、通常ならば数日でアプリを認定した旨のMailが届くのですが…落ちた場合も、まずMailで連絡が来ます。

「認定できませんでした」Mail

Oh... レポートはDashboard から見ることができます。

認定レポート

「コンテンツの適合性:不合格」であると。
要件 2.2というのは、「アプリ内の広告は Microsoft のコンテンツ ポリシーに準拠していなければならない」です。
Microsoft のコンテンツ ポリシーというのは、要件 5「Windows アプリは世界中のユーザーに適合する」です。 暴力ダメドラッグダメ等色々細かいのですが、ざっくり言うと「エロスは程々に」という規定です。詳しくは以下の「Certification Requirements」を御参照下さい。

Windows 8 app certification requirements
http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx

Windows 8 アプリの認定の要件
http://msdn.microsoft.com/ja-jp/library/windows/apps/hh694083.aspx

つまり、「アプリが表示している広告に問題があるので審査に落ちた」という事になります。審査担当者曰く、「このアプリ内の広告は年齢審査基準を満たしていないようです」とあります。


エロスは程々に

…? 認定レポートをここまで読んで、最初、なぜ審査に落ちたのか意味が分かりませんでした。
futa8 が表示している広告は Microsoft AdvertisingAdduplex です。前者はMicrosoft 自らがストアアプリ用に提供している広告であり、後者はストアアプリを紹介する広告です。この二つが審査に落ちるような問題のある広告を出すとは、かなり考えにくいです。

この疑問はレポートの最後にある「詳しい情報のダウンロード」で解けます。ZipにはPDF ファイルが一つ入っており、審査担当者が問題であると判断した「アプリのスクリーンショット」が載っていました。

「問題のある」アプリのスクリーンショット

ああ、そういう…

審査担当者が問題にしたのは、futa8 の画面ではなく、futa8 の「Webブラウザで開く」ボタンを押すと表示される、Internet Explorer の画面でした。

futa8 は画像掲示板ブラウザアプリケーションであり、アプリ上に掲示板内の書き込み・画像を表示しますが、掲示板上の広告は表示していません(Amazon等、一部例外もありますが)。

futa8 での表示

一方、「Webブラウザで開く」ボタンを押すと、Internet Explorer を起動し、元々のふたばのスレッドを表示します。こちらの広告を見て審査担当者は「これはダメ」と判断した、という事になります。

Internet Explorer での表示(一部モザイクを掛けております)

…ふたばちゃんねるを良くご覧の方ならご存知と思いますが、この6月くらいからでしょうか?表示される広告が増え、又、かなり直球なエロスな感じの広告も増えました。6月末に審査に提出したRelease 5 は、この6月からのエロスの奔流でアウトになってしまったと。そういう事だったようです。

勿論、これらの広告は、アプリの画面上で表示している訳ではありませんし、アプリ内に広告コンテンツを含んでいる訳でもありません。URL の関連付けで起動した Internet Explorer 上で表示されているネットワーク上のコンテンツです。
でも、それはダメですよ、というのが今回の審査での判断でした。アプリの操作の結果として出てくるものは要件5 コンテンツ ポリシー のチェック対象、という事なのでしょう。

結果として、Release 5 では「Webブラウザで開く」機能を「Clipboard にURL をコピー」に変更することで審査を通過しました。良く使う機能なのでちょっと使いにくくなってしまいましたが、仕方ありません。

この一件から教訓を得るとするなら、アプリ上の画面だけでなく、「コンテンツの適合性テスト」時にアプリの操作の結果表示される画面についてもコンテンツ ポリシーに沿っているか確認すべき、という所でしょうか。雰囲気的に、テストでは押せるボタンは全部押していると考えた方が良い気がしています。

(あ、最後に一応…この記事は、ふたばの広告からエロが無くなればいいのに!という意図の文では全く無いです。ふたばの内容に何か言う意図は微塵もありません。)

2013年7月26日金曜日

XAML を使うストアアプリのWin8 から Win8.1 への移行

XAML を使うストアアプリのWin8.1 への移行について、App Builder Blogにガイドが出ています。

Windows 8 to Windows 8.1 Preview starting with XAML templates
http://blogs.windows.com/windows/b/appbuilder/archive/2013/07/24/windows-8-to-windows-8-1-preview-starting-with-the-xaml-templates.aspx

以前に出た、もう少し引いた大きな絵の移行ガイドと併せて必見な感じです。
Updating your app from Windows 8 to Windows 8.1 Preview
http://go.microsoft.com/fwlink/?LinkID=304117

今回のガイドは、XAMLのプロジェクト テンプレートに大きな変更が入ったよ、という話で、

  • LayoutAwarePages は廃止 同機能は各PagesのCode Behind に移動
  • SuspensionManager は残留するも、そのWrapperClass NavigationHelper が登場
  • プロジェクト毎の既定のResourceDictionary "StandardStyles.xaml" の廃止 並びに使用頻度の高いStyleの名前変更

…じゃあ今のWin8 Project のコード全部書き換えねばならんの?というとそうではなくて、
ミソなのは、
上はあくまでもプロジェクト テンプレートの変更であるため、LayoutAwarePagesを使った以前のWin8 Projectも、必要最低限の変更だけでBuildは通るという所でしょう。

ただ、昔のテンプレートを使い続ける事には、移行初期の作業量を減らす以上の意味はあまり無いのかもしれません。今後、MSDNの記事にしてもStackOverflowにしても、新しいテンプレートベースで議論と知識が積み上がっていくであろう事を考えると、とっとと新テンプレートにコードも頭も切り替えた方がいいのかな、と思っています。

...

Win8 でのXAML + C# プロジェクトでハマる所・判りにくい所というのは大体LayoutAwarePages 絡みなのではなかったかなと言う気がしています。個人的にも、MSDN Forumの質問のやり取りを見ていてもです。上の話とは裏表になりますが、言語やWinRTの仕様ではなく、あくまでVSのProject Template扱いなので、MSDNにまともなDocumentationが無いのが辛かった。ソース見ればいい、という話では無いんじゃないカナーと(そのソースの日本語っぽい謎コメントがさらに混乱のズンドコ)。
ですので、LayoutAwarePages 廃止、CodeBehindに移動、という今回の変更は個人的には賛成です。


2013年7月11日木曜日

Release 7 以降に向けて (と、謎の不具合)

futa8 Release 7 に向けて作業項目を整理しています。

今回はUI周りの修正はお休みし、Release 1 の頃から積み残しになっている…不安定、落ちる、系の不具合を潰す、のが目標です。
宅内のPCで使っている分にはそうでもないのですが、テザリングのような不安定なネットワークで使っていると、今のfuta8はかなり弱いです。下回りを鍛えなければいけません。

この操作すると何か落ちるんだけど、的なお話があればお聞かせ頂けると大変有難いです。

おまけ

(ここを読んでいる奇特な方へのお土産)
Release 5 から、大人の事情で「Webブラウザで開く」を「URLをクリップボードにコピー」に変更しましたが、これに伴い、Mouse - Ctrl+Click, Touch - Tap and Hold, で変更前の機能が動作するという謎の不具合が発生しております。謎です。(Ctrl+クリックはちょっとコツが…再現にコツが要ります)
一般的なユーザーシナリオで再現する不具合では無いことから、特に修正の予定はありません。ご了承下さい。


2013年7月5日金曜日

futa8 Release 6

futa8 Release 6 が Windows ストア からインストール出来るようになりました。
http://apps.microsoft.com/windows/app/futa8/17a26f04-9d9d-4614-ae0f-f807f4938ee9

既にfuta8をお使いの場合、Windows ストア を開くと右上に「更新プログラム」が表示され、ここをクリックすると更新ページに移動します。

インストールに成功すると、futa8のバージョン情報が v1.0.0.38 になります。確認するには、チャーム→設定→アクセス許可 を開きます。

futa8 Release 6
5 July 2013

修正

カタログ画面を表示する際、スレッド タイルの表示ががたつく・ロード時に揺れる等の不具合を修正しました。

更新・変更

広告プロバイダ Microsoft Advertising (PubCenter) のSDKを 2013年6月版に更新しました。
これに伴い、

  • プライバシー ポリシー に、Microsoft Advertisingを使用している旨の記述を追加しました。
  • チャームに、項目「マイクロソフト アドバタイジング」が追加されました。
Microsoft Advertising (PubCenter)は、MS製のWin8アプリ…ニュース、天気、トラベル、bing等…と、多くのWindows Store アプリで使われているのですが、これらアプリ上に、Cookieを使ってパーソナライズされた広告を表示したい・するに当たって、ユーザーの許諾・拒否をこの項目から変更出来るようにした、という事のようです。
詳細については、以下のサイトを御参照下さい。




2013年7月2日火曜日

Win8.1 RT への TestPackageのInstall

今まではRemoteDebuggerに全部やってもらっていたのですが、Win8.1RT用のVS2012 RemoteDebuggerが準備できるまで暫くの間は又手動でやらねばならんようです。

Install
対象のAppx Folder
<SolutionDir>\<AppDir>\AppPackages\hogehoge_ver
をTargetMachineにCopy。
TargetMachineでPowerShellを開いて、今CopyしたFolderの中にある
Add-AppDevPacakge.ps1
を実行。初回だと多分スクリプト実行云々エラーが出るので、管理者権限で
set-executionpolicy remotesigned
を実行。

うまくいったらテキストモードのアニメーションでインストールの様子が表示される。

ただし、PowerShellの場合VersionManagementはユーザーが自分でやらないとだめで、先に別Versionが入っている場合はPackageをRemoveする必要がある

Remove と PackageFullNameの確認

Removeは
Remove-AppxPackage <PackageFuillName>

PackageFullNameの確認は
Get-AppxPacakge