LoginSignup
1
0

More than 1 year has passed since last update.

ExpoアプリにTracking Transparency を実装する

Posted at

Expo のSDK 42が7月の初めに公開されました。じゃあ、ひとまずバージョン上げとくかと思って、SDKをバージョンアップしただけのものをApp Storeの審査に出したところ、リジェクトされました。

あれ???と思って、理由を見たら App Tracking Transparencyを実装せよとのこと。iOS14.5以降では、アプリでトラッキングをするときにはユーザーの同意が必要とのことでした。確かに、最近いろんなアプリで同意画面を見たなあとは思ってました。

しかし、Expoはさすがというかもう用意されていました。TrackingTransparencyというのを使うだけですね。はい、expoコマンドでインストール。

$ expo install expo-tracking-transparency

実装もサンプルコードそのままインポート。

import { requestTrackingPermissionsAsync } from 'expo-tracking-transparency';

自分のアプリの場合はFirebaseAnalyticsを入れていたので、いったんこれを停止。

Analytics.setAnalyticsCollectionEnabled(false);

その上で、ユーザーの許可をもらえたら、再度有効にするとしました。

useEffect(() => {
    (async () => {
      const { status } = await requestTrackingPermissionsAsync();
      if (status === 'granted') {
        Analytics.setAnalyticsCollectionEnabled(true);
      }
    })();
  }, []);

Expoの公式ドキュメントにイマイチ書いてないような気がしますが、app.jsonのios>infoPlist>NSUserTrackingUsageDescriptionを追加すると自分の設定したメッセージが出せるようです。

"ios": {
    "infoPlist": {
        "NSUserTrackingUsageDescription": "We use Tracking to fix bugs and improve your experience."
},

Screenshot_8_2_21__9_39_PM.png

これでアプリをビルドして、再提出したところ無事審査が通りました。リジェクトはほとんど食らう余地のない小さなアプリなのですが、この対応面倒そうなと思った割にはそうでもなかったです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0