Skip to main content

Mandatory Updates

Mandatory updates force users to install an update before they can continue using the app. Use them for critical security fixes or breaking API changes.

Use sparingly

A broken mandatory update locks users out of your app entirely. Always test on a staging channel first.

Step 1: Publish a Mandatory Update

Via CLI

swiftpatch deploy -p ios --hermes --mandatory -n "Critical security fix"

Via Dashboard

Step 1: Create a new release.

Step 2: Check Mandatory Update.

Step 3: Publish.

Step 2: Handle It in Your App

Block the UI until the update is applied:

import React from 'react';
import { Modal, View, Text, Button, ActivityIndicator } from 'react-native';
import { useSwiftPatch, UpdateStatus } from '@swiftpatch/react-native';

function MandatoryUpdateScreen() {
const { availableUpdate, status, downloadProgress, downloadUpdate, restart } = useSwiftPatch();

if (!availableUpdate?.isMandatory) return null;

return (
<Modal visible animationType="fade">
<View style={{ flex: 1, justifyContent: 'center', padding: 24 }}>
<Text style={{ fontSize: 24, fontWeight: 'bold', textAlign: 'center' }}>
Update Required
</Text>
<Text style={{ textAlign: 'center', marginVertical: 16, color: '#666' }}>
A critical update is available. Please update to continue.
</Text>

{status === UpdateStatus.UPDATE_AVAILABLE && (
<Button title="Update Now" onPress={downloadUpdate} />
)}
{status === UpdateStatus.DOWNLOADING && (
<View style={{ alignItems: 'center' }}>
<ActivityIndicator size="large" />
<Text style={{ marginTop: 12 }}>
Downloading... {downloadProgress?.percentage}%
</Text>
</View>
)}
{status === UpdateStatus.RESTART_REQUIRED && (
<Button title="Restart" onPress={restart} />
)}
</View>
</Modal>
);
}

Best Practices

  • Use sparingly -- only for critical security fixes or breaking API changes
  • Explain why the update is required in the UI
  • Show progress during download so users know something is happening
  • Test thoroughly -- a broken mandatory update locks users out
  • Test on staging first before publishing to production
danger

A broken mandatory update prevents users from accessing your app. There is no way to recover except publishing a fixed update or a new app store binary. Always test on a staging deployment first.