简体   繁体   中英

How to build .ipa for React Native?

I come to React Native development without previous experience in iOS development. I want to build release. .ipa file - ideally from the command line but the official documentation Running On Device is very brief.

I was able to deploy applications on my iPhone manually via XCode but still, I can't find any "release IPA" file. I have updated my code with #ifdef DEBUG directives to make it more generic.

Is there a way to build an application in release mode only via the command-line? If no, what is "the official" way to generate an RN application?

I am currently using RN 0.20.

First, you need to create a bundle this way :

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

Then, you have to comment this line in AppDelegate.m :

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

and uncomment this one :

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

Then you have to go for Product -> Archive in Xcode and follow the steps based on your desired release

You have to set Scheme to Release.

From docs you have two ways.

To do this, go to Product → Scheme → Edit Scheme (cmd + <), make sure you're in the Run tab from the side, and set the Build Configuration dropdown to Release.

or

You can also use the React Native CLI to perform this operation using the option --configuration with the value Release (eg react-native run-ios --configuration Release).

Then you can generate your archive as usual.

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

i cannot comment on the above answer, it is correct but you need to start with the following command in order for it to work:

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

the difference is 'ios' instead of 'iOS'

if not it will give the following error:

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

iOS

  1. Open iOS project with Xcode using the following simple command from your root folder.

     xed ./ios
  2. Now paste the following command in terminal

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

    在此处输入图片说明

  3. Edit the scheme from Xcode like this:

    Product -> Scheme -> Edit Scheme

    在此处输入图片说明

    Edit scheme to release

    在此处输入图片说明

Now you have a stand-alone Xcode project and ready to build/release like native Xcode project.

Ans From: https://medium.com/better-programming/create-ipa-and-apk-from-react-native-72fe53c6a8db

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM