(AIR for Androidで開発している方向けの情報です)
Android Marketにてapkをアップロードし、サーバにデータが転送されて届いた瞬間(ネットの速度によっては0KB表記のままの場合があります)に、
「apk をサーバーで処理できませんでした。もう一度お試しください。」
というエラーメッセージが出て、アプリを公開できないという問題で、1週間ほど悩んだ結果、
あまりにも凡ミスだったためにメモしておきます。
↑やはり、凡ミスというわけではなさそうです。記事最下部に追記しておきます。
ただ、こんな凡ミスでさえもエラーメッセージから原因をつかみにくいという事実があるのです。
今回の問題の原因は、
<image512x512>○○</image512x512>
の行が抜けていた事。
↑このように書きましたが、必ずしもこれが原因じゃなさそうです。
うまくアップできてから以降は、この行をコメントアウトしても
うまくアップロードできるようになりました。
むしろ、やはりimage512x512は不要と思われるのでご注意ください。
確かな原因が分からなくなってしまったのですが、経緯などを追記しておきました。
このことから、アプリケーションはリリースビルドとして正しく出力されていても、そのapkはマーケットへの転送のタイミングで弾かれ、しかも上記のように「もう一度お試しください」と言われるということが分かりました。
— 追記 2012.01.24 —
状況を詳しく書いておきます。
過去に20回ほどバージョンアップしていたAndroidアプリだったのですが、突然何らかの原因でapkをアップロードする際に、「apk をサーバーで処理できませんでした。もう一度お試しください。」とエラーが出て何度試しても、apkのアップロードができなくなりました。
これはサーバ側の問題であろうと思い、サポートに連絡しました。
Report an Application Publishing and Distribution Issue
↑ここからだったと思います。
その後、以下の流れ。
- 割と早いタイミングで
「[#○○○○] Your message about Android Market」という表題のサポートメールが届き、そこにはよくあるトラブルシューティングが書かれていました。これはよくあるパターンです。 - それに対して、環境とエラーメッセージのスクリーンショットを添付して返信。
- その間、こちら側の問題がないか、正しくアップロードできていたバージョンのバージョン番号だけ変えたりしてアップするものの状況変わらず。
- 2日後に(これも思ったよりは早かった)、
「We’ve made some changes recently that may have resolved the problem.」と生身の人間っぽいサポートからのメッセージが届きました。無償にも関わらず、このスピードでサポートが動いている事には驚いた。 - 完全にこれで問題解決と思いきや、状況変わらず。。
- ダメだった旨の返信を出すものの、返事なし。。
- 4日間ほど経って、返事なかったので「hello?」的なメールを出すものの、返事なし。
- Twitterなどでつぶやいたところ、「apk にエラーが無ければ、めげずにアップロードすればいけるはず。」というヒントをもらっていたので、何度もトライしていたのですが、「apk にエラーが無ければ」に注目して、もう一度自分のファイルを再確認。
- <image512x512>○○</image512x512>がコメントアウトされいている箇所を発見。
- 確かにこの問題が発生した頃に、-app.xml内を整理した事を思い出す。(なぜか<image512x512>○○</image512x512>というのが記述されており、「これ、いらなくね?」と思ってコメントアウトしたのでした。)
- コメントアウトを解除。
- すると、次のアップロードで、なんとエラー回避して、アプリが登録できるようになる!
これで、凡ミスによってこのエラーが発生したものだと思い込み、ブログを書いたのですが、
「FlashBuilderのデフォルトでは、<image512x512>○○</image512x512>はもともとない」という指摘を受け、再度コメントアウトしてアップロードしたところ、これ以降は問題なくアップロードできるようになりました。つまり、何度もアップロードを試していた状態にしてもアップロードできるようになったのです。
いずれにしても、もっと検証してからブログを書くべきでした。。
怪しい点としては、やはり-app.xml内の記述。「<name>」を変えたり「<manifestAdditions>」内を弄ったりもしたので、その辺の影響もあるかもしれません。もうひとつ、サポートとやりとりしていた点。ちょうどタイミングが重なっただけでサーバ側で何か行われた可能性も無きにしもあらずです。
確かな原因が追及できぬままとなってしまいましたが、上記のようなやりとりが何らかの参考になるかもしれないので、このMEMOを残しておきます。
東京造形大学卒業後、マクロメディア(現アドビ)に入社。QAやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、Unity, Unity Netcode for GameObjects, CakePHP, Laravel, ZBrush, Modo, Adobe Substance 3D, Adobe Firefly, Xcode, Apple Vision Pro, Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。
コメント
すいません。教えてください。
AIR for Android で署名してAPKを作り、GooglePlayにリリースされてます。
今回、同じアプリ名でVersionアップをするために、アプリをNative化して
今度はEclipseから申請したいのですが、Air for Androidで発行しているP12を
キーストアにインポートする形でしょうか?
というか開発環境が変わったため、新しいキーストアを発行して
新しいアプリで申請しないといけないのでしょうか???
やった事はないですが、アプリ名というよりは、アプリケーションID(Google Playではパッケージ名と書かれているところのID。air.com.mushikago.XXXみたいなやつ。)とコンパイルするときのp12を一致させておけば、いけるんじゃないかなと思いますがどうでしょう?IDは、最初に「air」と着いてるかもなので注意です。
もしかすると、そのアプリがサポートするデバイスに違いがあるとダメだったりするかもですが。