FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

【iOS】ログインが必要なアプリには退会機能が必要となります

App Store Review ガイドライン 5.1.1において、アカウント作成に対応しているすべてのAppを対象に、アカウント情報を削除する機能の実装が必要となりました。

今回は、ガイドラインに沿ったアプリへと改修するにあたり、対応が必要な内容を記事にまとめていきます。

そもそもApp Store Review ガイドラインとは?

App Store Review ガイドラインはアプリをApp Storeへリリースする際の審査基準を定めたものです。
App Store Reviewガイドライン - Apple Developer

アプリのリリース時にはAppleによる審査が入ります。この審査はガイドラインに基づいて行われるため、内容を遵守したアプリにしていく必要があります。

アカウント削除に関するガイドライン

2022年6月30日以降、アカウントの作成に対応したAppをApp Storeに提出する場合は、ユーザー自身がそのApp内でアカウントを削除できるようにする必要があります。(Apple公式サポートページより引用)

このガイドラインは、個人データの管理をさらに強化する事を目的として追加されました。

ガイドラインによれば、アプリ利用時にログインを要するアプリに関して、アカウントの削除および、個人に紐づいたデータを削除する機能を実装する必要があるとの事です。

アカウントの削除に関しては退会機能の実装で対応が出来ます。 一方で、ポインタやリレーションを用いて個人データを紐づけている場合は退会だけでなく、参照先データも併せて削除する必要があるということですね。

NCMBで退会機能を実装する方法

NCMBの会員管理・認証機能を用いてアカウント管理を行っている場合も対象となり、退会機能の実装は必要となりますのでご紹介いたします。

会員管理・認証機能によって登録されたアカウント情報は、NCMBのデータストアにUserクラスとして格納されています。

※管理画面上では会員管理とデータストアは異なって見えますが、会員管理で表示しているアカウント情報はデータストアのUserクラスを表示しているものになります。

したがって、Userクラスに格納されたデータに対して、データストアのオブジェクトの削除を活用する事でアカウント情報を削除することが出来ます。

POINT①  NCMB のドキュメント
 NCMBサイトには日本語で書かれたドキュメントが豊富に揃っています。是非開発にお役立てください。
ドキュメント : 開発者向けドキュメント | ニフクラ mobile backend

実装の流れ

ユーザーがアプリからユーザー自身のデータ削除を行うには、そのアカウントでログインしている状態で、カレントユーザーを取得(ログイン中のユーザーインスタンス)し、取得したユーザーに対してdeleteメソッドを実行します。

JavaScriptSDKを利用した退会処理の実装は以下の通りです。

//現在セッションに使用しているユーザー情報を取得
let currentUser = ncmb.User.getCurrentUser();
//ユーザーを削除
currentUser.delete()

ポインタやリレーションを用いた関連データがある場合

Userクラスとデータストア上の他のクラスの情報を関連付けていた場合、退会時には関連付けた情報も併せて消去するような実装が必要になります。

NCMBでのデータの関連付けにはポインタやリレーションを活用している可能性がありますので、アカウント情報の削除を行う前に、それらの参照先である関連データの削除対応が必要になってきます。
※ポインタはクラス同士を1対1の関係で結びつけ、リレーションはクラス同士を1対nの関係で結びつけます。

ポインタを使っている場合

Userクラスのデータにポインタを用いている場合、UserデータにobjectIdを持つため、先にポインタでの参照先データを削除してからUserデータの削除を実行すれば、ガイドラインに沿った退会処理となります。

リレーションを使っている場合

Userクラスのデータにリレーションを用いている場合、UserデータにobjectIdを持たないため、別途リレーションで紐づいている情報を取得してデータの削除を実行する必要があります。

POINT②  ポインタとリレーション
 ポインタとリレーションの考え方を簡潔にまとめております。データ削除方法の違いについては、こちらをご確認いただくとスムーズです。

ポインターとリレーションの使い分けについて - ニフクラ mobile backend(mBaaS)お役立ちブログ

その他参考ブログ

こちらのQiitaブログもご参考ください。

qiita.com

おわりに

App Storeの審査はアプリリリースの大きな壁とも言われています。
他にも審査を乗り切るために考慮すべき点はいくつかありますが、今月中に対応するべき内容として本記事を執筆いたしました。
皆様のアプリにお役立ていただけましたら幸いです。

導入相談会

竹田侑祐

mobile backend企画担当。
誰もがアプリ開発に取り組みやすい環境を提供するため、日々勉強中