あまりにも理不尽な仕打ちに頭に来たので、これまでの記録を文章にして公開。 同様の経験している開発者の方は、 これを参考に私と同じ過ちを冒さないようにしてください。
結論だけを先に言えば、AppStore に出品したいなら、 信念を曲げてでも Reviewer に従え!ってことです。
Reviewer に都合の悪い質問や自分の意見を言うと、 アプリの却下と言う仕打ちを受けます。 Reivewer に対して、どんなに自分の意見の背景となる具体的な例示や説明をしても、 単に無視されるだけですので徒労に終わります。 具体的な根拠を示すほど、Reviewer の怒りを買います。 そのため、アプリの承認を目指すなら、反論は絶対にやってはいけません。
たった、一度の経験でこのように判断するのは総計ですが、 二度と同じ経験はしたくはないので…。
なお、一連のやり取りは英語で行いました。
2009年2月23日追記。
Reviewer も少ない incentive で作業しているのだから、
いちいち開発者からの質問に応えるわけがないよ、とご意見をいただきました。
(Reviewer の経験者だったのかな?)
でも、一方が良くて片方がダメな明確な理由を教えてもらえないと、 プログラムの修正もできないし、納得もできないんだけど…。 ちゃんとした評価基準があってそれを適用して判断しているのであれば、 それを示せばよいのに提示するのでもなく、 一方的にアプリの却下を実行されたら、 Reviewer の気分次第で審査されていると疑われても仕方がないんじゃないかな。
バージョン 1.0 を申請
iPhone と判断できる画像やアイコンは使うな!と却下される。
とりあえず、iPhone のような画像を全部削除して再申請。
バッテリー情報へのアクセスは SDK の API にない!と却下される。
そもそも SDK で使用可能な具体的な API リストが提供されていないし、 public な IOKit Framework を使っているから問題ないのでは? 必要ならコードを提出するよ、と回答。
さらに、バッテリー情報にアクセスする他のアプリが既に AppStore にあるのに、 何故ダメなのか質問を提出。
修正した上で、再度申請。
前回の質問への回答はないの? それと、まだレビューに時間がかかるのか?と問い合わせ。
もっと待て!と返事が来る。質問への回答はなし。
メールは読んでいるようだが、 開発者からの質問(自分達に都合が悪いような質問)には一切応えないようだ。
何が良くて何が悪いのか、具体的に説明してもらえないと修正できないのに、 もしかして Reviewer の気分次第で許可していたので説明できないのか? 明らかに Private Framework を使っているアプリもあるしね。
偶然、同名の別作者のアプリケーションを AppStore で発見! しかも、バッテリー情報にアクセスしている!
Reviewer に、私のアプリよりも後に申請した同様の機能を持つアプリが承認されているが、 何故私のアプリはダメで、そのアプリは良いのか違いを教えて欲しい、 と質問メールを送った。
質問への回答ではなく、 バッテリー情報へのアクセスは SDK の API にない!と同じ理由で却下される。
だから、何で他のアプリは承認できて、このアプリのバッテリー表示はダメなのか、 具体的な説明を要求していたのに一方的に打ち切られた!
酷い仕打ちだ…(T_T)。 しかし、自分達の指示に従わない、うるさい開発者を黙らせるには効果的な方法だな。
でも、どこまで良くて、何が悪いのか、 きちんと説明してくれないと同じことの繰り返しになるのに、 何で説明してくれないのかな…。 それと、一ヶ月弱もかけて同じ理由で却下するなら、もっと早く却下して欲しいな…。
結局、二ヶ月も時間を無駄にして、アプリは承認されないで終わったわけか。 しかも、先の質問への回答はまったくなし。二ヶ月で何も得るものが無かったのは虚しいな。あっ、ひとつあったか! つまり、Reviewer に逆らうと痛い目を見るってことね。
海外の Forum などで Reviewer 次第と見聞していたけど、 自分が同じ仕打ちにあって、本当に不公平な審査をしている Reviewer の存在を実感した。 今までのアプリでは、丁寧に修正箇所を指摘してくれて $99 以上の価値があると感じていたんだが、この Reviewer のせいで台無しだな。
都合が悪い質問には回答せずに、アプリの却下と言う手段で対応されると、 開発者としては、これ以上はどうしようもない。
素直にバッテリー情報の表示を削除して再申請すれば通るかもしれないが、 それだと Reviewer の不当な差別を容認することになるので避けたいのだが…。 そもそも、利用者が不便になるようなアプリの改変はしたくないんだよね。 でも、素直に従うのが賢い開発者なのだろうか?
しかし、ここまでの苦労を無駄にしたくないので、App ID を変更して試してみる。 これで Reviewer が代わるのか?あるいは、同様に却下されるのか? そもそも、同じアプリに同じ Reviewer が担当しているとも限らないんだよな。 結果は、約1週間後かな。
と言うか、何でもっと早く上記の方法を考え付かなかったんだろう…。 今まで、良い Reviewer に当たっていたので、Reviewer を信じきっていた。 これが間違いだったようだ。これからは却下された場合は、差障りの無い質問を送って Reviewer の質を見極めないとダメだな。 最初から、直球ど真中の質問だと今回のような仕打ちが待っていそうで恐いからね。
ゲーム関係の規制が緩くなって来たので評価基準が変わったのかと思ってたのに、 既に利用しているアプリが多くあるバッテリーへのアクセスで却下されるとは思いもしなかったよ。 こんな経験をしていると、メモリ解放系のアプリはよく審査が通ったなと思う。 バッテリーアクセスよりも、きわどいレベルでシステムにアクセスするのに。
どこがダメか画像のキャプチャを送って欲しいと頼んだら、 ちゃんと応じてくれた。やはり、バッテリーのところが問題らしい。 つまり、双方、問題箇所に関する誤解はしていないのが分かった。
で、いつものお決まりの却下理由が書かれていた。
Upon review of your application, SysMon cannot be posted to the App Store due to the usage of private or undocumented iPhone SDK API. Usage of such non-public API, as outlined in the iPhone SDK Agreement section 3.3.1, is prohibited:
"3.3.1 Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs. "
There is no documented public API in the iPhone SDK to access battery information on iPhoneOS devices.
だから、section 3.3.1 には欲しい情報が書いていないないんだって! そもそも、開発者に利用可能な API の一覧も提供していないじゃないか。 と言うことで、利用可能な API の一覧を教えてね、というお願いをしてみた。
それと、もう文章でやり取りしても全然納得できる回答が得られないので、 実際のキャプチャ画像を使ってバッテリー情報に関する App Store で販売中の同名のアプリケーションと私のアプリケーションとの違いは何なのかを、 この質問画像を使って説明してね、と頼んでみた。
上記の理由だと、販売中のアプリケーションも却下されるはずだけど、 何が違うのかな?ついでに、 「Battery Log」って言うバッテリーの状態を記録するアプリケーションは、 どうして上記の理由で却下されなかったのかも聞いてみた。
正直、疲れた…。
もう面倒なのと正しい英語表現か疑問になってきたので、
ここからは日本語で質問している。
バッテリ情報を不可視にしたバージョンを別名で登録していたが、 12日経過して今度はアイコンが Apple 社の商標侵害しているとして却下された…。 ちなみに、アイコンも販売中の他のアプリでは普通に使用している。
どうやら、やつらは却下する理由が見つかった瞬間、 それ以上の審査はしないようだ。そのため、訂正しては却下され、 また訂正しては却下されると言う遅延が起こるわけだ。
開発者の手間を増やすような審査は止めて欲しい。 やつらも全部目を通してから不採用理由を列挙して送り返し方が、 あとの手間を考えると効率が良いと思わないのかな〜。
ついに、3ヶ月目に突入。 このアプリケーションは呪われているのか!? どうやら、よほど酷い審査員たちに合ってしまっているようだ。 Developer Program の有効期限の 4分の1をこのアプリの審査で費しているって…。
ちなみに、AppStore のアプリケーションのユーザレビューで、 こういう機能があったら☆ 5つなのに…、 と書いてあるのを見かけますが、 最初はその機能を付けていたのに Reviewer によって却下されている可能性があります。 Reviewer はユーザの利便性などは考えませんので、 どんなに開発者が努力しても報われない機能が数多くあると思います。
特に、ユーザインタフェース関係は、重箱の隅をつくくらい細かく指摘されます。 そのため、一度認められたユーザインタフェースでの実装方法でしか、 アプリケーションを作成しなくなってしまいました。 これは、一度却下されると最低一週間は待たされますので、それを避けるためです。 今回のような件もあるので、ますます Reviewer による却下を避けるため、 新しい方法を試みなくなるんですよね。
偶然、AppStore で購入したアプリが、 私が却下された方法のユーザインタフェースで実装されていて、 何とも言えない気分になりました。
ちなみに、一度却下されたアプリを無修正で再申請して、 そのまま承認されたことがあります。 つまり、アプリを却下した判定基準に明確な規則はなく Reviewer の感情次第だったということですね。
さらに、「Enter IP Address」と記してあるところに、ただの数字を入力して、 期待通りの動作結果を得られなかった、と言う理由で却下されたことがあります。 このとき、ちゃんとポップアップで IP アドレスを入力するように警告を出しています。 なのに、使えないからダメって…。使えないのはお前だ!って言ってやりたかったです。 今回の件より前では、一番理不尽な却下理由でした。 このあと、IP アドレスの説明をメールで送って、使い方を説明した気がします。
最後に一言。どのくらい裁量が与えられているのか分からないけど、 公序良俗に反しているアプリじゃないのだから、 Reviewer には、もうちょっと柔軟な対応をして欲しいですね。 承認されたアプリの先例がある場合は特にね。
2009年2月26日追記。本日の回答で、この願いは永遠にかなわないと思った。