🐙
ReactNative + Expo + AppClip + Universal Links
ブラウザからリンクをタップして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