development

“Invariant Violation : Application AwesomeProject가 등록되지 않았습니다.”정적 jsbundle로 iOS 장치 용으로 빌드 할 때

big-blog 2020. 12. 13. 10:09
반응형

“Invariant Violation : Application AwesomeProject가 등록되지 않았습니다.”정적 jsbundle로 iOS 장치 용으로 빌드 할 때


우선 반응은 모르지만 시뮬레이터 대신 iOS 장치에 배포하는 것이 문서로 수행하기 너무 어렵지 않을 것이라고 생각했습니다. 그것들은 약간 드물었지만 어딘가에 있었고 지금은 붙어 있습니다. main.jsbundle을 만들어 Xcode 프로젝트에 추가하고 AppDelegate.m에서 주석을 제거했습니다.

배포 할 때이 오류가 발생합니다.

2015-03-26 16:13:08.538 AwesomeProject[4753:2477032] >
  RCTJSLog> "Running application "AwesomeProject" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF"
2015-03-26 16:13:08.547 AwesomeProject[4753:2477032] >
  RCTJSLog> "Error: 
 stack: 
  runApplication                  main.jsbundle:33769
  jsCall                          main.jsbundle:7157
  _callFunction                   main.jsbundle:7404
  applyWithGuard                  main.jsbundle:877
  guardReturn                     main.jsbundle:7206
  callFunctionReturnFlushedQueue  main.jsbundle:7413
 URL: file:///private/var/mobile/Containers/Bundle/Application/DBC0DAF4-B568-4CF5-B156-9EFEE4E7FF4A/AwesomeProject.app/main.jsbundle
 line: 1536
 message: Invariant Violation: Application AwesomeProject has not been registered."
2015-03-26 16:13:08.723 AwesomeProject[4753:2477032] >
  RCTJSLog> "#CLOWNTOWN (error while displaying error): Network request failed"

@krazyeom의 수정 사항 이이 오류와 관련이 없다고 확신합니다. 제 경우에는 이전에 실행 한 테스트 앱에서 실행중인 터미널을 종료하여이 문제를 해결했습니다. 터미널이 혼란스럽고 프로젝트가 더 이상 XCode에로드되지 않은 프로세스에 연결되어있는 것 같습니다. 다음을 시도하십시오.

  1. React Native에서 생성 한 터미널을 종료합니다.
  2. XCode를 완전히 종료합니다 (필요하지 않을 수도 있음).
  3. 모든 것을 다시 열고 다시 실행하십시오.

문제는 콘솔과 관련이 없어야합니다. javascript를 ios 앱에 적절하게 번들하면 dev 서버와 통신하지 않고 번들에서 javascript를 가져옵니다.

오류 메시지에서 주 구성 요소의 이름을 변경했을 수 있습니다. 'AppName'당신이 안으로 통과 하는지 확인하십시오

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

@"AppName"에 대한 귀하 AppDelegate.m의 요청 과 일치

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

반응 네이티브 서버가 여전히 이전 서버를보고 있기 때문입니다. 먼저 서버를 종료해야합니다.

프로세스를 죽일 수 있습니다.

터미널에서

ps aux | grep react

프로세스를 종료하거나 종료 한 다음

npm start

AppRegistry는 애플리케이션에 대한 진입 점을 정의하고 루트 구성 요소를 제공합니다.

첫 번째 매개 변수가 프로젝트 이름과 일치하지 않습니다.

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

의 첫 번째 매개 변수는 registerComponent프로젝트 이름이어야하고 두 번째 매개 변수는 루트 반응 구성 요소를 반환하는 익명 함수입니다.

첫 번째 매개 변수가 xcode 프로젝트 이름과 일치하지 않으면 애플리케이션이 등록되지 않았다는 오류가 발생합니다.

범위에 AppRegistry가없는 경우 이와 같이 호출 React.AppRegistry.registerComponent하거나 AppRegistryvar에 할당 할 수 있습니다.

var {
  AppRegistry
} = React;

AppRegistry.registerComponent('abc',() => ***); 

'abc'과 동일해야합니다 moduleName:@'abc'파일 이름에AppDelegate.m


나는 같은 문제가 있었다. AppDelegate의 moduleNameAppRegistry.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.


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.

참고URL : https://stackoverflow.com/questions/29287987/invariant-violation-application-awesomeproject-has-not-been-registered-when-b

반응형