Getting your React Native App on an iOS device

Posted October 8th, 2015 • 2 min read

As I was playing around with the awesome React Native library I encountered a few small hicups getting an app running on an actual device, so here's how I made it work for me.

At the time of writing I've tested the following with:

I won't go into much detail on how to get a React Native project going on your computer, as the nice guys at Facebook do an excellent job explaining this process.

After you've opened your initial project (generated by react-native init <your-project>) in XCode you can run it on the simulator to verify it compiles and runs correctly.

Now, to get the app on your iPhone the documentation will want you to do the following:

  1. Open AwesomeApp/ios/AwesomeApp/AppDelegate.m
  2. Change the IP in the URL from localhost to your laptop's IP

This was not enough in my and my colleagues case. Additionally, you will want to do the following:

  1. Select the project in the navigator pane
  2. Go to the Build Settings tab
  3. Search for Dead Code Stripping and set it to NO

Once that's done you should be able to select your phone as build target and press "Build and run".

Of course, when you want to make a final build which doesn't require the device to be on the same WiFi as the computer you are serving the bundle.js file of off there's more steps, but with the above we could get Live Reloading on an actual device to work.

Happy Coding.

Stay up to date

Want to know when a new post comes out and stay in the loop on tips, tricks and gotchas? Consider signing up for the Mindthecode newsletter.

Comments

Keep reading

May 16th, 2012 • 3 min read
With this little gem you can watch specific folders or file extensions and run commands based on the files you watch.
August 6th, 2013 • 2 min read
Let me show you how you can get syntax highlighted output from cat in the terminal
September 18th, 2017 • 2 min read
We usually focus on getting the homepage Pagespeed to 90+, but what about the rest of the pages? I made a tool to help with this.