web-dev-qa-db-fra.com

Comment puis-je régénérer le dossier ios dans le projet React Native?

Il y a quelque temps, j'ai supprimé le répertoire/ios de mon application native (appelons-le X). Je développe et teste à l'aide de l'émulateur Android, mais j'aimerais maintenant m'assurer qu'il fonctionne sous ios avec un simulateur xcode, etc.

Donc, mon idée actuelle est de créer un nouveau projet nu natif de réaction (appelons-le Y) avec un dossier ios, puis suivez ces étapes pour renommer Y de sorte qu'il porte le nom de X, puis déplacez le/répertoire ios de Y dans X et en essayant de run-ios.

Je vais mettre à jour ici comment ça se passe, mais je me suis demandé s'il y avait une meilleure façon et si personne n'avait été dans cette situation auparavant?

J'ai cherché dans beaucoup de choses 'régénérer le dossier ios' ', supprimer le dossier ios' 'ajouter le dossier ios au fichier existant ..' et rien de bien. Peut-être que mon googlefu n'est pas assez bon mais si quelqu'un a des suggestions, très apprécié.

L’étape 2 s’assurera que les compilations sont compilées, mais pour l’instant, mon objectif est de récupérer le dossier/ios dans le projet et de permettre à React Native de se rendre compte de son existence la configuration nécessaire).

Merci

56
Tam Borine

Le processus à suivre est très similaire à celui de renommer une application native rea. En gros, il vous suffit d’exécuter react-native upgrade dans le répertoire de votre projet racine. Pour plus d'informations, vous pouvez vérifier une autre question ici . Les instructions ci-dessous expliquent comment créer un autre projet natif de réaction basé sur un projet copié portant un nouveau nom.

  • Commencez par copier le répertoire contenant votre application à modifier. Et allez dans votre répertoire nouvellement cloné.
  • Changez le nom dans le fichier index.ios/Android.js qui est donné en paramètre à AppRegistry.
  • Changez le nom et la version en conséquence sur package.json
  • Supprimez les dossiers /ios et /Android de votre ancienne application.
  • Exécutez $react-native upgrade pour générer à nouveau les dossiers /ios et /Android.
  • Exécutez $react-native link pour toute dépendance native.
  • Enfin, lancez $react-native run-ios ou tout ce que vous voulez.
99
milkersarac

Supprimez/supprimez simplement Android et ios (conserver la sauvegarde Android et le dossier ios) et exécutez la commande suivante:

  react-native eject

Supported version : 
    react-native <= 0.59.10
    react-native-cli <= 1.3.0 



   react-native upgrade --legacy true

Supported version : 
        react-native >= 0.59.10
        react-native-cli >= 1.3.0 

Réf: lien

40
Khurshid Ansari

Remarque à partir de la version 0.60.x de react-native, vous pouvez utiliser les éléments suivants pour régénérer les répertoires ios/Android:

react-native upgrade --legacy true

Crédit ici: https://github.com/facebook/react-native/issues/25526

15
groundtruth-andy

C’est trop tard, mais pour tous ceux qui ont toujours le même problème et qui ont une application native indépendante, ce que j’ai fait pour moi, j’ai lancé exp detach sur mon application individuelle et il a créé un dossier ios!

2
Mizlul

Comme @Alok l'a mentionné dans les commentaires, vous pouvez utiliser react-native eject pour générer les dossiers ios et Android. Mais vous aurez d'abord besoin d'un app.json dans votre projet.

{"name": "example", "displayName": "Example"}
2
aleclarson

Étant donné que l’éjection de react-native est dépréciée dans la version 60.3 et que des erreurs diff apparaissent lors de la mise à niveau du formulaire 60.1 vers la version 60.3, la régénération du dossier Android ne fonctionnait pas.

J'ai dû

rm -R node_modules

Mettez ensuite à jour le fichier react-native dans package.json vers 59.1 (supprimez package-lock.json).

Courir

npm install

react-native eject

Cela régénérera vos dossiers Android et ios. Enfin, passez à la version 60.3.

react-native upgrade

la mise à niveau native en retour à l'arrière et 59.1 n'ayant pas régénéré mon dossier Android, l'éjection était donc nécessaire.

0
Paul Gehrke

Je viens de me retrouver avec ce problème aussi, mais je viens de le résoudre.

Lors de l'exécution de la commande "react-native upgrade", il leur a bien indiqué qu'il n'était pas nécessaire de mettre à jour ou avec la commande "react-native eject" que la commande n'était pas reconnue.

mise à niveau native

Vous devez maintenant utiliser la commande "react-native upgrade --legacy true" pour sauvegarder vos dossiers Android ou ios, selon le cas, car cette commande remplacera vos fichiers.

réactif, mise à niveau native --legacy true

Maintenant, il vous dit simplement de ne pas remplacer votre package.json

0
Manju Priya