Depuis 18 mois, je déploie des applications React Native avec Expo Updates en production. Sur trois projets différents, deux d'entre eux ont eu un crash bloquant en production qui a été corrigé en moins d'une heure grâce à un patch OTA. Sans OTA, on parlait de 24 à 48 heures pour qu'Apple revalide le binaire.
Ce qui marche
Le runtime versioning est ton meilleur ami. Tag chaque release native avec un runtime version explicite, et ne pousse jamais d'OTA cross-runtime. C'est la première règle, et c'est aussi celle que tout le monde finit par enfreindre une fois.
Le piège du rollback
Un OTA peut rollback en bougeant le pointeur de version vers un build précédent. Mais si l'OTA en question a déjà installé un schéma de stockage local incompatible, l'app crashe au démarrage. Toujours coder les migrations de stockage local en idempotent et tolérant à un rollback.