「apk をサーバーで処理できませんでした。もう一度お試しください。」

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

(AIR for Androidで開発している方向けの情報です)
Android Marketにてapkをアップロードし、サーバにデータが転送されて届いた瞬間(ネットの速度によっては0KB表記のままの場合があります)に、
「apk をサーバーで処理できませんでした。もう一度お試しください。」
というエラーメッセージが出て、アプリを公開できないという問題で、1週間ほど悩んだ結果、
あまりにも凡ミスだったためにメモしておきます。
↑やはり、凡ミスというわけではなさそうです。記事最下部に追記しておきます。

apk をサーバーで処理できませんでした。もう一度お試しください。



ただ、こんな凡ミスでさえもエラーメッセージから原因をつかみにくいという事実があるのです。
今回の問題の原因は、
<icon>タグ内の
<image512x512>○○</image512x512>
の行が抜けていた事。

↑このように書きましたが、必ずしもこれが原因じゃなさそうです。
うまくアップできてから以降は、この行をコメントアウトしても
うまくアップロードできるようになりました。
むしろ、やはりimage512x512は不要と思われるのでご注意ください。
確かな原因が分からなくなってしまったのですが、経緯などを追記しておきました。

このことから、アプリケーションはリリースビルドとして正しく出力されていても、そのapkはマーケットへの転送のタイミングで弾かれ、しかも上記のように「もう一度お試しください」と言われるということが分かりました。

— 追記 2012.01.24 —

状況を詳しく書いておきます。
過去に20回ほどバージョンアップしていたAndroidアプリだったのですが、突然何らかの原因でapkをアップロードする際に、「apk をサーバーで処理できませんでした。もう一度お試しください。」とエラーが出て何度試しても、apkのアップロードができなくなりました。
これはサーバ側の問題であろうと思い、サポートに連絡しました。
Report an Application Publishing and Distribution Issue
↑ここからだったと思います。
その後、以下の流れ。

  1. 割と早いタイミングで
    「[#○○○○] Your message about Android Market」という表題のサポートメールが届き、そこにはよくあるトラブルシューティングが書かれていました。これはよくあるパターンです。
  2. それに対して、環境とエラーメッセージのスクリーンショットを添付して返信。
  3. その間、こちら側の問題がないか、正しくアップロードできていたバージョンのバージョン番号だけ変えたりしてアップするものの状況変わらず。
  4. 2日後に(これも思ったよりは早かった)、
    「We’ve made some changes recently that may have resolved the problem.」と生身の人間っぽいサポートからのメッセージが届きました。無償にも関わらず、このスピードでサポートが動いている事には驚いた。
  5. 完全にこれで問題解決と思いきや、状況変わらず。。
  6. ダメだった旨の返信を出すものの、返事なし。。
  7. 4日間ほど経って、返事なかったので「hello?」的なメールを出すものの、返事なし。
  8. Twitterなどでつぶやいたところ、「apk にエラーが無ければ、めげずにアップロードすればいけるはず。」というヒントをもらっていたので、何度もトライしていたのですが、「apk にエラーが無ければ」に注目して、もう一度自分のファイルを再確認。
  9. <image512x512>○○</image512x512>がコメントアウトされいている箇所を発見。
  10. 確かにこの問題が発生した頃に、-app.xml内を整理した事を思い出す。(なぜか<image512x512>○○</image512x512>というのが記述されており、「これ、いらなくね?」と思ってコメントアウトしたのでした。)
  11. コメントアウトを解除。
  12. すると、次のアップロードで、なんとエラー回避して、アプリが登録できるようになる!

これで、凡ミスによってこのエラーが発生したものだと思い込み、ブログを書いたのですが、
「FlashBuilderのデフォルトでは、<image512x512>○○</image512x512>はもともとない」という指摘を受け、再度コメントアウトしてアップロードしたところ、これ以降は問題なくアップロードできるようになりました。つまり、何度もアップロードを試していた状態にしてもアップロードできるようになったのです。

いずれにしても、もっと検証してからブログを書くべきでした。。

怪しい点としては、やはり-app.xml内の記述。「<name>」を変えたり「<manifestAdditions>」内を弄ったりもしたので、その辺の影響もあるかもしれません。もうひとつ、サポートとやりとりしていた点。ちょうどタイミングが重なっただけでサーバ側で何か行われた可能性も無きにしもあらずです。
確かな原因が追及できぬままとなってしまいましたが、上記のようなやりとりが何らかの参考になるかもしれないので、このMEMOを残しておきます。

コメント

  1. toshi より:

    すいません。教えてください。
    AIR for Android で署名してAPKを作り、GooglePlayにリリースされてます。
    今回、同じアプリ名でVersionアップをするために、アプリをNative化して
    今度はEclipseから申請したいのですが、Air for Androidで発行しているP12を
    キーストアにインポートする形でしょうか?

    というか開発環境が変わったため、新しいキーストアを発行して
    新しいアプリで申請しないといけないのでしょうか???

  2. tshiraishi より:

    やった事はないですが、アプリ名というよりは、アプリケーションID(Google Playではパッケージ名と書かれているところのID。air.com.mushikago.XXXみたいなやつ。)とコンパイルするときのp12を一致させておけば、いけるんじゃないかなと思いますがどうでしょう?IDは、最初に「air」と着いてるかもなので注意です。
    もしかすると、そのアプリがサポートするデバイスに違いがあるとダメだったりするかもですが。