web-dev-qa-db-fra.com

Comment compiler .IPA pour React Native?

J'arrive à React Développement natif sans expérience préalable du développement iOS. Je souhaite construire le fichier .IPA de version, idéalement à partir de la ligne de commande, mais la documentation officielle Exécution sur le périphérique est Très bref.

J'ai pu déployer l'application sur mon iPhone manuellement via XCode, mais je ne trouve toujours aucun fichier "release IPA". J'ai mis à jour mon code avec #ifdef DEBUG directives pour le rendre plus générique.

Existe-t-il un moyen de créer une application en mode release uniquement via la ligne de commande? Si non, quelle est la manière "officielle" de générer une application RN?

J'utilise actuellement RN 0.20.

54
sodik

Tout d’abord, vous devez créer un paquet de cette façon:

react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios

Ensuite, vous devez commenter cette ligne dans AppDelegate.m:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

et décommentez celui-ci:

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

Ensuite, vous devez choisir Produit -> Archiver dans Xcode et suivre les étapes en fonction de la version souhaitée.

49
G. Hamaide

Vous devez définir Scheme à Release.

De docs vous avez deux façons.

Pour ce faire, sélectionnez Produit → Schéma → Modifier le schéma (cmd + <), assurez-vous que vous vous trouvez bien dans l'onglet Exécuter, puis définissez le menu déroulant Configuration de la construction sur Libéré.

ou

Vous pouvez également utiliser le React pour effectuer cette opération à l'aide de l'option --configuration avec la valeur Release (par exemple, release -config-run-ios - release de configuration)).

Ensuite, vous pouvez générer votre archive comme d’habitude.

https://facebook.github.io/react-native/docs/running-on-device.html#building-your-app-for-production

19
Diego Mello

je ne peux pas commenter la réponse ci-dessus, elle est correcte mais vous devez commencer par la commande suivante pour que cela fonctionne:

react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios

la différence est 'ios' au lieu de 'iOS'

sinon, cela donnera l'erreur suivante:

ProjectPath/node_modules/promise/lib/done.js:10
  throw err;
  ^
13
Hanane