Expo a React Native
@vitrinka/expo je toolkit pro Expo. Dnes nese rekordér cest, který se při kompilaci vyřízne z bundle u každého buildu, který k tomu není výslovně oprávněný.
Instalace
npx expo install @vitrinka/expo react-native-view-shot react-native-keyboard-controllerPřidejte config plugin
Vyjmenujte build profily, které smí rekordér nést.
{
"expo": {
"plugins": [
["@vitrinka/expo", { "allowedProfiles": ["development"] }]
]
}
}Zapojte Metro
Jeden povinný řádek. Config plugin ověřuje, že tam je — chybějící obal build shodí, místo aby rekordér potichu odjel do produkce.
// metro.config.js
const { withRecorderStrip } = require('@vitrinka/expo/recorder/metro');
module.exports = withRecorderStrip(config);Připojte ho
Rekordér se připojí jen u buildů, které mají nastavenou proměnnou EXPO_PUBLIC_VITRINKA_URL. U všech ostatních se celý vyřízne z bundle při kompilaci.
import { VitrinkaRecorderRoot } from '@vitrinka/expo/recorder';Propojte zařízení
Do dev ani TestFlight buildu se nepeče žádný token. Klepnutí na tečku nahrávače (Link recorder) ukáže krátký kód a tlačítko Open vitrinka; kód ve vitrince schvalte (když patříte do více workspaců, vyberte který) a aplikace dostane token, který umí jen vytvářet a doplňovat session v tom workspacu. Vyprší 30 dní po posledním použití a je vidět a odvolatelný v Nastavení → tokeny.
Buildy bez člověka (testovací dráha nad produkcí) mohou dál nést admin vydaný recorder key jako EXPO_PUBLIC_VITRINKA_TOKEN — připnutý k projektu, jen ingest session. Nikdy workspace token.
Zdroj dostupný pod Elastic License 2.0: můžete ho číst, používat, měnit i šířit — nesmíte ho nabízet třetím stranám jako spravovanou službu.
Co rekordéry zaznamenávají
Co zaznamenává rozšíření prohlížeče, webový rekordér a rekordér pro Expo, kam se záznamy ukládají, jaké pověření nesou a jak funguje maskování.
React a webové aplikace
@vitrinka/web připojí rekordér cest přímo do React webové aplikace — bez rozšíření prohlížeče — takže testeři na telefonech i počítačích nahrávají session rovnou z dev nebo preview buildu.