Déployer une application React Native sur le device (IOS)

Vous avez commencé à développer sur un émulator, et il est vrai c’est assez facile de voir les modifications se répercuter rapidement sur l’interface, mais sachez que le comportement de l’application peut être différent sur un device physique.

Note importante : A la différence d’Android, si vous voulez compiler un binaire sur device, vous devez avoir un provisioning profile en règle. Pour plus d’information sur comment générer un provisioning profile voir cette page.

C’est pourquoi à un moment donné il va falloir que vous testiez sur un device physique, d’une part pour avoir un rendu fidèle, mais aussi pour vous habituer à ce process qui peut être un peu difficile quand on le fait pour la première fois. Nous allons le faire avec XCode mais on peut aussi le faire enligne de commande.

Viewing App

on simulator (todo)
on device (with cable) (todo)

Debugging App:
on simulator with React Native Debugger
on device (todo)

Erreur courante lors du déploiement en émulateur :

1/no bundle URL present

2/“Invariant Violation: Application AwesomeProject has not been registered” When building for iOS device with static jsbundle

aller dans /ios et faire $ pod install. pour réinstaller.

React Fragment example https://fr.reactjs.org/docs/fragments.html

class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Bonjour</td>
        <td>Monde</td>
      </React.Fragment>
    );
  }
}

Méthode 1 : Déployer sur le device en ligne de commande

Pas besoin de faire un build préalable, on peut faire un run qui buildera.

# Debug version
npx react-native run-ios
# Release version
npx react-native run-ios --configuration Release

Quand vous faites le commande ci-dessus, si aucun device n’est branché, c’est l’émulateur qui est lancé, mais si vous branchez un device, ce sera le device qui réceptionnera le binaire de l’application mobile. Je n’ai personnellement pas testé le déploiement en cli de la version release, je trouve qu’il est plus simple de le faire via XCode, voir ci-dessous.

Méthode 2 : Déployer la version Debug avec XCode

Déployer le version Release avec XCode

Quelle est la différence entre une version Debug et une version Release? la version Release est plus légère et plus optimisée pour le fonctionnement en production, par exemple vous ne verrez pas les messages de warning, et pas d’écran crash fatal.

La version release est celle que vous allez déployer sur l’Appstore.

Pour ce faire, heureusement la manipulation n’est pas compliquée si vous avez déjà réussi à déployer la version Debug sur votre device.

Allez dans Product > Scheme > Edit Scheme, dans l’onglet “Run”, cochez dans la liste “Release” dans Build configuration, et décochez la case "Debug Executable".

Fermez la fenêtre, et branchez votre device, choisissez

Avec cette méthode de soumission vous allez soumettre dans Testflight. Si vous voulez passer depuis Testflight vers Appstore (déploiement effectif), il faut faire expirer la période d’essai dans TestFlight, ensuite revenez dans AppStore.

Cliquez sur le signe “+”, et entrez la version de l’application telle que vous avez spécifiée dans le build (ex 1.2,1.4.5).

Vous aurez un message “Finaliser avant Soumission”. Vous devez choisir le build. Remplissez les informations restantes et soumettez pour vérification.