為什麼 deep link 會讓 Vibe-coded React Native app 直接 crash(以及如何用 Zod 驗證它們)
deep link、push payload、shared URL 全都是 untrusted input。這裡會說明如何在 Expo Router boundary 就先 validate 它們,別讓壞 params 進到 screen。
Vibe-coded app 裡的 deep link bug,通常都從一些很無聊的 input 問題開始:malformed user ID、過期的 campaign URL、push payload 裡缺少的 enum 值。接著 app 把這些 input 當成可信資料,screen 就會在 happy-path…