🔓

[Flutter] Privacy Manifestsの対応準備

2023/12/11に公開

はじめに

こんばんは!たつべえです!

6月のWWDC 2023でPrivacy Manifestsについての発表がありました。

iOSアプリ開発者はアプリがユーザーのプライバシーへ与える影響に対して、使用しているサードパーティSDKも含めた全てのコードについての責任を持つ必要があり、そのデータ収集と使用方法を把握するためにPrivacy Manifestsが導入されるとのことで、2024春以降は義務化されます。

つまり対応しなければリジェクトされます。

そしてつい先日、Appleから対応の詳細が公開されました。
Upcoming third-party SDK requirementsには、公開されているアプリによく使われている、Privacy Manifestsの対応が必須なSDKの一部が記入されています。中にはFlutterのパッケージも明記されており、Flutterで作成したアプリも対応が必須となることがわかりやすくなっていてありがたいですね(ありがたくない)。

というわけで、この記事ではFlutterエンジニアが今からできるPrivacy Manifests対応準備をお伝えします!

ただし一点注意として、この記事よりもFlutter公式が発表した内容が正しいです。
この記事自体も解決法ではなく予防法のようなものです。公式が対応方法を発表したらそちらに従いましょう。
現状としてはこの辺りで議論がなされているようです。


※ この記事で扱う「プラグイン」はFlutterドキュメントに則って、プラットフォーム固有の実装を持つDartパッケージを意味します。

※ 基本的にPrivacy Manifestsの対応を必要とされているのは、iOS固有のAPIを使用して何かしらのプライバシーに関わる情報を取得する場合です(2023/12/11現在)。Pure DartなパッケージだとPrivacy Manifestsの対応が不要な可能性が高いです。

プラグインパッケージにissueを投げる

もしアプリで使用しているプラグインパッケージのPrivacy Manifests対応が不明な場合は、「Plans for Implementing Privacy Manifest Support?」のようにissueを投げてみましょう。
「誰かがやる」では誰もやらず、あなたのアプリが終了する可能性があります。

プラグインパッケージのバージョンを最新にする

プラグインパッケージでPrivacy Manifests対応がされるとして、対応は最新バージョンにのみ適応される可能性が高いです。
せっかくパッケージのPrivacy Manifests対応バージョンが公開されたのに、導入できずアプリがリジェクトされてしまうという状況を避けるため、あらかじめパッケージの最新化を行っておきましょう。

メンテナンスされていないプラグインパッケージから脱却する

言わずもがなですね。
DISCONTINUEDDart 3 incompatibleなパッケージ、そういったフラグはついていないものの数年更新がないパッケージは今後もメンテナンスされず、Privacy Manifestsや同じようなプラットフォーマーからの要求に対応できない可能性が高いです。
別の選択肢を探しましょう。

Flutterを最新バージョンにする

Flutter SDK自体もPrivacy Manifests対応が必須とAppleに名指しされています。
ただ現時点ではどのように対応するかはわかっていません。
Flutter自身がPrivacy Manifestsを含んでくれるかもしれませんし、アプリの開発者がPrivacy Manifestsを作成する必要があるかもしれません。
どちらにしても可能な限り最新バージョンにアップしておいた方が安牌かと思います。

できるかもしれない裏技

※ 不確定情報です、鵜呑みにしないでください。

どうしてもFlutter SDKやプラグインパッケージのバージョンを上げられない状況の場合に、
Gitリポジトリをフォークし、アプリで使っているバージョンに対してPrivacy Manifests対応を行う
ことで、一時的にその場しのぎができる可能性があります。
mainブランチでメンテナーがPrivacy Manifests対応を行ってくれていればそのdiffをコピってくれば良いですしね。

ただしパッケージのライセンスには注意しましょう。
(そもそもこの方法でAppleがOK出してくれるかどうかはわからん)

最後に

以上、今からできるPrivacy Manifests対応準備でした。
人によっては大変で面倒くさい作業になるかと思いますが、お互いに知見を共有して、一緒にこの嵐を乗り切っていきましょう!

Discussion