バックグラウンドロケーションを使用したアプリ審査対応Tips
ご無沙汰しております、スターフェスティバル株式会社エンジニアのsoriです。
アドベントカレンダーの時期以外にもちゃんと記事を上げたいなと思っていましたが、今年も結局年末になってしまいました。
今年の後半は、これまで担当していたプロジェクトの開発メンテナンスを行いつつ、新規事業としてのプロダクトの開発をメインで行っていました。
先月には、沖縄の美味しいものを食べたいというよこしまな理由でプロポーザルを出したフロントエンドカンファレンス沖縄のLTが通ったので、かなり久々に技術系イベントへの登壇を果たすことができました。
現地やオンラインで聞いてくださった方、ありがとうございます。
「React Native for web導入失敗記」というタイトルなのですが、この機会にスライドを共有しておきますね。
さて、このLTで触れたアプリですが、無事iOS App Storeにてリリースを果たしました!
あれ?Android Play Storeは?
というところなんですが、それが今日お話したいネタです。
アプリでどんな機能が必要になったか
今回開発したアプリでは、インストールした端末の現在地を継続的にサーバーへ送信する機能があります。
ただし、ロケーションデータについてはプライバシー保護の観点で制限が多くあり、こちらの対応に多くの手間を使うこととなりました。
この機能についてはの要件はこのような形です。
- 定期的にアプリのGPS等の情報により現在位置を取得する。
- オンラインであれば定期的にサーバーへ取得した情報を送信する。
- 失敗した場合ローカルにデータを蓄積して復帰後最大件数まで送信する。
- アプリがバックグラウンド状態でも取得・送信を行いたい
iOSについては基本のバックグラウンドロケーション機能を使用すればよいのですが、Androidでは「フォアグラウンドサービス」という名前ですが、実際はバックグラウンド状態のときに動くみたいな機能の実装が必要になります。
たまに、位置情報を使っているAndroidアプリで、アプリを閉じても通知領域になにか出てくるのが心当たりあるかもしれませんが、それです。
notification機能を使いつつ、フォアグラウンドでアプリを動作させ続けることで、アプリを閉じていても位置情報やデータの送信を扱うことができます。
(この機能の実装について、ReactNativeの機能や外部パッケージだけでは融通が効かず、最終的にネイティブコードを書いてNative moduleとして扱う羽目になりました…)
審査対応
さて、これらのバックグラウンドでロケーションを扱う機能のアプリ公開には、通常のアプリ審査に加えて下記の対応が必要となりました。
-
ロケーション情報を扱うことを示したプライバシーポリシーの提出
アプリの審査情報として、プライバシーポリシーへのリンクの提出が必要になります。
当初、会社で共通で適用しているプライバシーポリシーを提出しました。
App Store審査では内容があっていればこれで通るのですが、Play Storeの場合、「アプリ(サービス)の名前が利用規約で参照できること」が必要とされ、差し戻しを受けてしまいました。
また、Play Storeではアプリからのプライバシーポリシーへのリンクの提供が必須とのことです。
こちらについては、法務部署と調整し当アプリ用のプライバシーポリシーを新たに作成することになりました。
(そのため、Play Storeでの審査が終わっておらずまだ継続中です…) -
バックグラウンドロケーション機能を使用しなければならない理由を提出する
こちらはApp StoreもPlay Storeでもなのですが、バックグラウンドロケーション機能を使用しなければならない理由を審査のやり取りにて提出する必要がありました。
今回のサービスではアプリ利用者(車載での利用を想定)が安全に業務を遂行するため、管理者が把握できるようにするため、という理由を説明しました。
それから、アプリの利用については、それぞれ動画でのアプリケーションの動作の説明が必要となります。実際のアプリの動作画面を画面収録機能を使って収録し、アプリの使われ方とともに作成します。
URLにて動画を提出するのですが、Play StoreではYouTubeの動画URLを提出せよとあり、さすがGoogle…!
このために、サービスのYouTubeチャンネルを開設することになりました。
(URL共有のみなので、一般向けにはまだ動画が公開されていませんが、今後サービスの紹介にも活用できそうです)
久々にiMovieを使って動画を編集して提出し、無事そのフェーズについては通過することができました。(iMovie最低限のことしかできないので字幕作成や見せたくない部分を隠したりするのが大変だった…)
最後に
バックグラウンドでの位置情報の取り扱いは、一見ユーザーに認識されづらい状態で提供される機能であり、悪用を防ぐためには必要な審査であると言えます。
同様のアプリを開発しようと考えている方に、スケジュールやリソースの調整の参考になれば幸いです。
Discussion