
先週、Appleは初のライブビデオストリーミングアプリ「Knocking Live Video」を承認しました。今週は「Ustream Live Broadcaster」がすぐ後に続きました。木曜日には、「iSimulate」という開発アプリケーションのアップデートがストアに登場しました。これら3つのアプリには共通点が1つあります。それは、iPhone開発者契約に違反するプライベートAPIを使用していることです。しかし、これらはすべて承認されています。
開発者が直面する奇妙で複雑な制約の中で、プライベートAPIの使用はおそらく最も議論の余地が少ないでしょう。プライベートAPIとは、Appleが「安定」していないとみなしているためにドキュメント化していないプログラミング関数です。例えば、iPhone SDKの将来のリリースで動作が変更されたり、完全に廃止されたりする可能性もあります。開発者は、製品の主要機能にこれらのインターフェースに依存しないよう強く推奨されていますが、これは大抵の場合理にかなっています。家を建てるなら、流砂の池ではなく、しっかりとした土台の上に建てたいものです。
しかし、例外は以前から存在していました。Google Mobile Appは、プライベートAPIを使用しているにもかかわらず、ストアに紛れ込んだ最初のアプリの一つでした。iPhoneの近接センサーと環境光センサーが収集した情報を利用し、スマートフォンを耳に当てると音声検索機能を起動できます。しかし、Googleが1年以上前に違反を認めたにもかかわらず、このアプリは今もストアに残っており、実際、今週アップデートされました。
しかし、もっと興味深い事例を紹介しましょう。iSimulateの開発元であるVimov社は最近、自社プログラムのアップデートを提出したところ、非公開APIが含まれていたにもかかわらず、Appleはそれを承認しました。Vimov社はAppleからのメールによる回答を自社ブログに掲載しました。この件は、これまで見てきたApp Storeの拒否理由と似たような始まり方をしますが、予想外の結末を迎えることになります。(まあ、今さら説明してもお分かりでしょうが。)
iSimulate のアップデートを App Store にご提出いただきありがとうございます。審査の結果、プライベート API を使用していることが判明しました。これは iPhone 開発者プログラム使用許諾契約書のセクション 3.3.1 に違反しています。「3.3.1 アプリケーションは、Apple が規定する方法でのみドキュメント化された API を使用でき、プライベート API を使用または呼び出してはなりません。」 アプリケーションは却下されておりませんが、次回のアップデートでこの問題を修正していただくことをお勧めします。
アプリケーションに含まれる非公開 API は UITouch._touchFlags です。
iSimulate の次回のアップデートでこの問題を解決してください。
慈悲?App Store のレビュアーから?クリスマスの奇跡だ!
小さな変更のように見えるかもしれませんが、これは大きな変化です。Vimov氏が指摘するように、アプリを却下しないことには大きなメリットがあります。再度審査プロセスを経て、おそらく数週間ほど待つことになる代わりに、開発者は次回のアップデートで見落としを修正するだけで済むのです。今回のケースでは、問題のAPIは削除されるはずだった古いコードに含まれていましたが、Vimov氏はすでに削除済みです。
これが広範囲にわたる政策変更となるかどうかはまだ分からないが、ジャーナリズムの古い格言にあるように、「一はまぐれ、二は偶然、三は傾向」だ。時代が変われば、この妥当な寛容さが他の状況にも適用されることを願う。