--- name: jutsu-expo:expo-updates description: Use when implementing over-the-air (OTA) updates with Expo Updates. Covers update configuration, checking for updates, and update strategies. allowed-tools: - Read - Write - Edit - Bash - Grep - Glob --- # Expo Updates Use this skill when implementing over-the-air (OTA) updates to deploy JavaScript and asset updates without app store releases. ## Key Concepts ### Configuration ```json // app.json { "expo": { "updates": { "enabled": true, "checkAutomatically": "ON_LOAD", "fallbackToCacheTimeout": 0, "url": "https://u.expo.dev/[project-id]" }, "runtimeVersion": { "policy": "sdkVersion" } } } ``` ### Checking for Updates ```tsx import * as Updates from 'expo-updates'; import { useEffect, useState } from 'react'; import { View, Text, Button } from 'react-native'; export default function App() { const [updateAvailable, setUpdateAvailable] = useState(false); useEffect(() => { async function checkForUpdates() { if (!__DEV__) { const update = await Updates.checkForUpdateAsync(); setUpdateAvailable(update.isAvailable); } } checkForUpdates(); }, []); const handleUpdate = async () => { const { isNew } = await Updates.fetchUpdateAsync(); if (isNew) { await Updates.reloadAsync(); } }; if (updateAvailable) { return ( Update Available!