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

I'm pretty sure @krazyeom's fix has nothing to do with this error. In my case, I fixed this by quitting the terminal that was running from a previous test app I had run. It seems the terminal was confused and was still hooked to a process whose project was no longer loaded in XCode. Try the following:

  1. Shut the Terminal spawned by React Native.
  2. Shut down XCode completely (may not be necessary).
  3. Re-open everything and re-run.

Your problem shouldn't have anything to do with the console, if you properly bundled your javascript into the ios app it wont be trying to talk to dev server, it'll just get the javascript from the bundle.

From the error message I'd guess that you might have renamed your main component. Be sure that the 'AppName' you pass into the

AppRegistry.registerComponent('AppName' /* <- */, ... )

matches with the @"AppName" on your AppDelegate.m on the call for

[[RCTRootView alloc] initWithBundleUrl:...
                            moduleName:@"AppName" // <-
                         launchOptions:...

It is because the react-native server is still watching the old one. You need to shut the server down first.

You could just kill the process.

In terminal

ps aux | grep react

Kill or pkill the process and then

npm start

AppRegistry defines the entry point to the application and provides the root component.

Your first param doesn't match your project name.

AppRegistry.registerComponent('AwesomeProject', () => YourMainComponent);

First param of registerComponent has to be your project name, second param is anonymous function that returns your root react component.

If first param doesn't match xcode project name, you get that error that your application has not been registered.

In case you don't have AppRegistry in the scope you can call it like this React.AppRegistry.registerComponent or you can assign it to the AppRegistry var

var {
  AppRegistry
} = React;
wickey liang
AppRegistry.registerComponent('abc',() => ***); 

the 'abc' must be the same as the moduleName:@'abc' in the file name AppDelegate.m

Dawan

I had the same issue. I solved it by giving the same name to both AppDelegate's moduleName and AppRegistry.registerComponent

If you are running the app with $ react-native run-ios you will need to rename the moduleName field in ./ios/[project name]/AppDelegate.m to match the new name of the project. Refresh the phone simulator and it should show the new code.

Did you change the name of the app that you're registering? I started the app with the name 'tricky', then later changed the name in this line:

AppRegistry.registerComponent('MyNewApp', () => MyNewApp);

and I started getting the invariant error.

I am not fan of closing down everything so I dig this further.

All I had to do is in my terminal window, I ran this command:

../lala/node_modules/react-native/packager/launchPackager.command ; exit; 

My project name was "lala" , so find that there is node_modules in your project too.

replace lala with your project name it should work.

If there is an error says port is already in use:

 ERROR  Packager can't listen on port 8081

Then you have two choices:

  • Kill already running program.
  • Or Change the port by going into : ../lala/node_modules/react-native/packager/packager.js then find your port number, example 8081, and replace with the port number that is not in use.
 var options = parseCommandLine([{
          command: 'port',
          default: 8082,
        }, {

Save this file and then run the above command again.

This way I can run multiple react(ors).

Got the same error, restarting everything including the xcode and terminal worked for me.

Jerry Chou

Reference a nameless person.

it works for me.


I had almost the same problem you currently have a few days ago. For me it was a real device.

From all my research, the solution that worked for me is the following:

  1. When you launch your app by typing react-native run-android, the error appears.
  2. So, reach your directory containing "adb.exe" ( for me it was
    C:\Users\username\AppData\Local\Android\Sdk\platform-tools\ )
  3. open a terminal from here. And type adb reverse tcp:8081 tcp:8081
  4. Then, by reloading the app on the phone, it should work.

I got the similar message in the console.

message: Invariant Violation: Application AwesomeProject has not been registered."

I just added REACT_EDITOR=atom on ~/.bashrc file.