Zenn
🐙

ReactNative + Expo + AppClip + Universal Links

2025/03/24に公開

ブラウザからリンクをタップしてAppClip経由で起動してURLからパラメータを受け取るアプリのサンプル。

react-native-app-clip を使う。

AppClipはiOS 15で動作させるには10MB以下、iOS 16以降で動作させるには15MB以下に制限する必要がある。
AppClipと本体で iOS Deployment Target は別に設定できるので「本体はiOS 15以降、AppClipはiOS 16以降」という構成は可能。
その場合、iOS 15だとUniversal Linksのみが起動する。

"newArchEnabled": true"jsEngine": "hermes" だと15MBの制限に対応できないため、 ios のみ "newArchEnabled": false"jsEngine": "jsc" にする。
アプリの構成によってはどちらかを有効化できるかもしれない。
手元の環境ではどちらかを有効化すると20MBを超えたので断念した。

app.json
{
  "expo": {
    "newArchEnabled": true,
    "jsEngine": "hermes",
    "ios": {
      "newArchEnabled": false,
      "jsEngine": "jsc",
      "associatedDomains": [
        "applinks:example.com",
        "appclips:example.com"
      ]
    },
    "plugins": [
      ["react-native-app-clip", { "deploymentTarget": "16.0" }]
    ]
  }
}

ついでに以下らへんも有効にしてみた。

.env
EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH=1
EXPO_UNSTABLE_TREE_SHAKING=1

Discussion

ログインするとコメントできます