[iOS 8] App Extension を開発する前に読んでおきたいレビューガイドラインの追加項目

レビューガイドラインに注意!

iOS 8 から利用できるようになった App Extension によって、いままでのサードパーティ製アプリでは成し得なかった OS と統合するような機能が開発できるようになりました。開発者にとっても企画者にとってもこれまでにない新しいアプリが作れる絶好の機会です。しかし、App Extension に関するレビューガイドラインがあり、この項目のいずれかの抵触するとリジェクトされてしまいます。アプリ開発前に事前に確認しておきましょう。

レビューガイドラインを読んでみよう

25. Extensions

25.1 Extension は App Extension Programming Guide に準拠している必要がある

25.1 Apps hosting extensions must comply with the App Extension Programming Guide

これはなかなかゆるふわな表現ですが、App Extension Programming Guide に書かれている内容に準拠している必要があります。レビュアーによって左右されることかも知れませんが、準拠しているかどうか何とも言えない場合はリジェクトされることを予め考慮しておくか、機能を削除したほうが良いかもしれません。

25.2 Extension を含むアプリにヘルプ画面、追加の設定が含まれていない場合はリジェクト

25.2 Apps hosting extensions must provide some functionality (help screens, additional settings) or they will be rejected

この項目も若干ふわっとしていますね。アプリ側には Extension の使うためのヘルプ画面を表示する機能、そして追加の設定が行える機能を提供している必要があります。App Extension のメインの目的はアプリ側ではないため、アプリ側に何を実装するんだという話になりますが、使いかたを説明する画面や、細かい設定が行えるようにしておくと良いかと思います。

25.3 Extension の View にマーケティング、広告、アプリ内課金が含まれる場合はリジェクト

25.3 Apps hosting extensions that include marketing, advertising, or in-app purchases in their extension view will be rejected

広告や宣伝目的、またアプリ内課金が Extension の画面上に表示されているとリジェクトされるようです。例えば「Today Extension に広告を掲載したい」なんて考えそうなところですが、このような機能は実現できません。

25.4 Keyboard Extension に次のキーボードに切り替えるボタンが存在しない場合はリジェクト

25.4 Keyboard extensions must provide a method for progressing to the next keyboard

こちらの記事で簡単に取り上げていますが、カスタムキーボードには必ず「次のキーボードに切り替えるボタン (標準キーボードの地球儀マークのボタンの機能)」が含まれている必要があります。地球儀マークの必要はなく、機能として提供していればOKだと思います。他のキーボードに切り替えることができなくなってしまうので、当然ですね。

25.5 Keyboard Extension の機能にネットワーク接続が必須の場合はリジェクト

25.5 Keyboard extensions must remain functional with no network access or they will be rejected

Keyboard Extension がネットワーク未接続時やネットワークが不安定の場合に使えないとしたら、ユーザーにとってはかなり不便ですよね。おそらく、そのようなユーザーに致命的な障害を与えるようなアプリを排除するためだと思われます。

25.6 Keyboard Extension で数字(整数または少数)を入力する機能が無い場合はリジェクト

25.6 Keyboard extensions must provide Number and Decimal keyboard types as described in the App Extension Programming Guide or they will be rejected

これも結構落とし穴だと思うんですが、数字(整数、少数)が入力できる機能を有していないとリジェクトされます。ちなみに先日、私はこの項目に該当したためリジェクトされてしまいました…。ご注意を。

25.7 Keyboard Extension を含むアプリのプライマリカテゴリが Utilities が設定されておらず、プライバシーポリシーが設定されていない場合はリジェクト

25.7 Apps offering Keyboard extensions must have a primary category of Utilities and a privacy policy or they will be rejected

この項目は Keyboard Extension をリリースするときのアプリ設定に関する注意点です。プライマリカテゴリに指定があることの他に、プライバシーポリシーの Web ページを予め用意しておく必要があります。特に個人の場合は用意していないことがよくあると思うので、事前に作成しておきましょう。

25.8 Keyboard Extension を含むアプリのユーザーの行動記録を収集する目的が Keyboard Extension の機能を増強すること以外の場合はリジェクト

25.8 Apps offering Keyboard extensions may only collect user activity to enhance the functionality of their keyboard extension on the iOS device or they may be rejected

文字入力操作はどのユーザーでも頻繁に行うことなので、収集したらものすごいビッグデータになりそうなところですが、これもやはりNGです。マーケティングなどに活用することはできなそうです。

まとめ

Keyboard Extension (カスタムキーボード) に関する項目が多いですね。まぁ確かにヘタするとユーザーがどのアプリ上でも文字入力できなくなってしまう事態に陥ってしまう可能性がありますしね。要注意です!