react-native에서 'No bundle URL no present'의 의미는 무엇인가?
반응 프로젝트를 실행하면 오류가 발생함no bundle URL present
하지만 나는 내가 무슨 실수를 하는지 모르겠어, 나는 매우 혼란스러웠어.
해결 error류 해결No bundle URL present
기준:
- 프로젝트 루트 디렉터리에서 다음 명령을 실행하여 iOS 빌드 디렉터리를 삭제하고(기본 포트 8081에서 실행 중인 것으로 가정) 다른 Ract Native 세션 제거:
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
- 위의 명령 조합을 별칭으로 결합하고 다음 명령과 함께 Bash 구성 파일 .bashrc에 추가하여 이러한 오류가 발생하지 않도록 기본 대응 워크플로우를 업데이트하십시오.
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
이제 간단한 별칭 바로 가기를 사용하여 Resact Native iOS 빌드를 실행할 수 있다(죽음의 일반적인 빨간색 오류 화면 중 일부에 대한 걱정 없이).
rni
나도 방금 이 문제에 부딪혔어(Ract Native를 처음 시작했어).을 하다가 문제가 react-native run-ios
)은 달리고 있었다 - 나는 달렸다.npm install
그 다음에react-native run-ios
다시. 터미널 창에서 번들거리고 있다는 것을 보여주었고, 시뮬레이터는 환영 화면을 보여주었다.
이 링크에서 다음 이후의 개요를 확인하십시오.react-native init PropertyFinder
선을 사용하려고 하다npm start
(이것은 나에게 효과가 있다)
========================================================================
UPDATE for 16.9
내 포트 8081은 McAfee에 의해 차단되었다.다른 포트를 직접 사용하는 것이 작동하지 않음react-native start --port=8082
그리고react-native run-ios --port=8082
여기 주어진 거의 모든 해결책을 시도해 보았지만 아무 것도 효과가 없었어
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
해결책:
Xcode에서 8081을 검색해 모두 8082로 교체했다.그런 다음 동일한 명령을 실행하여 앱을 만들고 실행하십시오.앱이 원활하게 작동함
react-native start --port=8082
react-native run-ios --port=8082
이 문제는 로컬 호스트를 통한 보안되지 않은 연결을 허용하지 않거나 HTTP를 통한 보안되지 않은 연결을 허용하려고 할 때 발생한다.
이 문제를 해결하려면 다음 위치에 추가하십시오.info.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
내가 앱을 묶을 때도 같은 문제가 있었어.의 인형이 맞는지 .main.jsbundle
주요 프로젝트를 대상으로 함
오류 메시지의 지시대로:
Xcode/iOS 라이센스에 동의하려면 관리자 권한이 필요하므로 "sudo xcodebuild -license"를 실행하고 이 명령을 다시 시도하십시오.
다음 명령 실행이 작동했다.
sudo xcodebuild -license
시뮬레이터와 터미널을 닫으십시오.새 프로그램을 열고 프로젝트로 이동한 후 다음과 같이 리액티브를 업그레이드하십시오.
react-native upgrade
문제: 번들이 실행되지 않을 때 RCTFatal의 무한 재귀.
이유:
이는 앱이 서버를 찾을 수 없기 때문이다(Javascript 코드로 UI를 서비스한다).
해결책:
- 기본 리액션과 관련된 모든 사항을 닫아 두십시오(솔루션에 대한 명확한 시작을 위해 필요 없음, 설명 후에 필요 여부를 파악할 수 있음).
- 달리다
npm run start
또는yarn start
맨 처음의 - 이 명령이 완료될 때까지 기다리십시오(보통 다음이 표시됨).
Loading dependency graph, done.
) - 달리다
react-native run-ios/android
설명:
Resact Native는 다음 두 부분으로 구성된다.
- 네이티브 파트
- 자바스크립트 부품
빌드 명령:
react-native run-ios/android
기본 부품을 만든 다음 장치에 배포하고 장치(기기/에뮬레이터/실제 장치)에서 앱을 시작하는 것이다.이 작업은 보통 3~4분이 걸렸다.npm run start
또는yarn start
Javascript 부품을 제작하고 dev 서버를 시작하여 내장된 UI를 앱에 제공하는 것이다.이 작업을 완료하는 데 보통 30초가 걸렸다.
=> 보통 자바스크립트 부분이 먼저 끝났고, 그 다음에 네이티브 부분이 늦게 왔다.(사용 시간에 따라)
=> 이것은 처음 빌드(최초 빌드)에 대해서만 적용된다.
=> 재구축의 경우:
자바스크립트 부품이 제작되어 서비스되기 전에 기본 부품에 대한 변경이 없기 때문에 기본 부품은 10~15초밖에 걸리지 않았다.(Javascript 부분이 재구축되었는지 아닌지는 잘 모르겠지만, 본래의 부분보다 시간이 오래 걸렸다)
그래서 이런 문제가 생겼고, 앱이 실행되어 아직 존재하지 않는 것을 요구하게 된 겁니다.
보너스:
react-native run-ios/android
개발 서버를 자동으로 시작하십시오.- 그래서 도망갔을 때
react-native run-ios/android
바로 뒤에react-native init <app_name>
, 모든 것이 잘 작동했다. (위의 상태와 같이 새로운 빌드에 자동 시작 기능과 시간이 걸렸기 때문이다.) - 다른 "제거" 해결책들은 재건을 강요했기 때문에 효과가 있었다.
이 대답에 사용된 시간은 내 기계에 관련된 것이었다. => 다른 사람에 따라 다를 수 있다.
다음 코드를 실행해 보십시오.
$ sudo xcodebuild -license
이것으로 문제가 해결될지도 모른다.이것은 나에게 효과가 있다.
다음 단계를 수행하십시오.
- xcode로 iOS 파일 프로젝트 열기
- 프로젝트 번들에서 main.jsbundle 파일 삭제
- main.jsbundle 이름으로 새 빈 파일 추가
- 실행 설명: reactive-native 번들 --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
- 이제 리액션된 런오즈
유튜브 링크: https://www.youtube.com/watch?v=eCs2GsWNkoo
나도 같은 오류가 있었고 엑스코드를 통해서만 앱을 실행할 수 있었다.react-native run-ios
효과가 없었다.이 문제를 해결하려면 를 제거해야 한다.build
에 폴더로 저장하다.YOUR_PROJECT/ios/build/
이 후에 당신은 당신의 앱을 실행할 수 있을 것이다.react-native run-ios
다시, 이게 도움이 되길 바래
대부분의 경우 이 문제는 DNS 조회/IP 조회가 로컬 호스트를 찾지 못할 때 발생한다.
해결책:
localhost IP를 etc 호스트 파일에 추가해 보십시오.
다음 줄을 호스트 파일에 추가할 수 있다(/etc/vmx)
127.0.0.1 로컬 호스트
255.255.255.255.255 방송
::1 l . 오칼호스트
이 문제를 확인하려면 사파리 번들 URL을 누르십시오(크롬으로 시도하면 해결되지만 사파리에서는 해결할 수 없음).http://localhost:8081/index.ios.filename?플랫폼=ios&dev=true&minify=false
.plist 파일에서 ATS 설정이 올바른지 확인하십시오.
/ios/{project_name}/Info.plist에서 파일을 찾을 수 있다.
localhost는 다음과 같이 예외 요청 대상으로 정의되어야 한다.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
*(릴리스 버전에서 이 항목을 삭제하는 것을 잊으십시오.)
나에게 문제는 그것이 JS 번들을 만들 수 없다는 것이었다.Xcode에서 빌드할 때 오류가 기재되어 있지 않기 때문에 이것을 알 방법이 없다.오류를 찾으려면 다음 명령을 실행하십시오.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
나에게 그 오류는 PureRenderMixin 성분이 빠진 것이었다.여기서 해결책을 찾을 수 있는 대상: https://github.com/facebook/react-native/issues/13078.기본적으로 react@16.0.0-alpha.3을 수동으로 설치해야 한다.이 명령은 이 명령을 실행하여 수행할 수 있다.
npm i --save react@16.0.0-alpha.3
이 문제는 이제 모든 사람들에게 일어나고 있다. 왜냐하면 새로운 버전의 반응 알파들이 출시되고 있기 때문이다(특히 알파.5). 그리고 그것들은 반응-원리적인 구조를 깨뜨리고 있기 때문이다.
해결책 -->npm start
그런 다음 새 터미널을 열고 프로젝트 경로로 이동한 다음react-native run-ios
그것은 나에게 효과가 있다.
나는 별도의 터미널에서 "재작동 시작"을 실행해야 했다.어떤 이유에서인지 그것은 실행되지 않았다.
Edit
가 제대로 되지 않았기 또한, 파일 허가가 제대로 설정되지 않았기 때문에 이것이 필요했던 것으로 밝혀졌다.영향을 받는 프로젝트 디렉토리에서 다음 명령을 실행하여 해결할 수 있다.
chmod 777 node_modules/react-native/scripts/launchPackager.command
터미널에서 실행react-native start
:
cd your react native app directory/ react-native start
이제 이 터미널 창을 닫지 말고 다른 터미널 창에서 프로젝트를 실행하십시오.이것이 내가 그것을 제대로 작동시키기 위해 찾은 유일한 희망이다.
내가 뭘로 해결했나:
- 터미널 창 열기
cd
YOUR_PROJECT/ios
- 다음을 사용하여 빌드 폴더 제거
rm -r build
- 달리다
react-native run-ios
다시
또는 Finder를 열고 다음 위치로 이동하십시오.YOUR_PROJECT/ios
그리고 삭제하다build
폴더
그럼 도망가.react-native run-ios
다시 한 번
출처: 앤드루 밴크로프트
먼저 시뮬레이터를 닫고 터미널에서 실행하십시오.
npm install
react-native run-ios
이것은 반응성 v0.42.1의 문제다.모든 터미널 및 XCode 인스턴스를 닫고 다음을 실행하십시오.
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
나도 같은 문제가 있었어.하지만 내 문제는 내 맥과 아이폰이 같은 와이파이 네트워크에 있지 않다는 것이었다.
따라서 모두 동일한 네트워크에 있는지 확인하고 다시 한 번 재구성하십시오.만약 그렇지 않다면, 여기 다른 회원들이 언급한 해결책을 시도해 보아라.
네트워크 프록시를 확인하여 종료하십시오.
아니면 다른 방법으로 포장기 서버를 유지 관리해야 한다.
nSExceptionDomains에서 'localhost' 키를 확인하십시오.plist
만약 존재하지 않는다면, 그것은 오류를 일으킨다.
이를 우회하는 가장 쉽고 빠른 방법은 시뮬레이터(2 x) 내에서 앱을 종료하는 것이다.Cmd + Shift + H
및 및 재실행.
iOS 시뮬레이터를 실행 중이며 이 방법은 다음과 같다.
1. 네이티브 프로젝트 정리
1.a Android 프로젝트용
cd android
gradlew clean
1.b iOS 프로젝트용
cd ios
xcodebuild clean
2. 반응하는 cach를 깨끗이
2.a npm을 사용하는 경우
npm start -- --reset-cache
2.b 실을 사용하는 경우
yarn cache clean
그 후에 너는 너의 프로젝트를 다시 실행할 수 있다.
맥을 다시 시작한 후 나도 그런 일이 일어났다.시뮬레이터에서 앱을 실행하면 launchPackager 터미널 창이 열린다.나는 그 창문을 닫고 그 과정을 끝냈다(나는 시뮬레이터도 채웠다), 그리고 나서 다시 반응성 런오스를 뛰면 모든 것이 잘 작동한다.
나의 경우, 문제는 다시 시작함으로써 해결되었다.adb
서버:adb kill-server && adb start-server
나한테도 이런 일이 생겼어...이었다. 의 기본 . 타이어여서 , 를 하는 것은 패커가가가그하가는는는는는는는는다. 아마도 나의 기본 쉘이 zsh. 리액션 타이어였기 때문에 새로운 터미널 창을 열고 달리기 위해서였다..../node_modules/react-native/packager/launchPackager.command
하지만 이건 실행되지 않았다.수동으로 실행(및 계속 실행)하여 이 문제를 해결했다.
사용한다고 가정할 때nvm
여러 버전의 노드가 설치된 경우 다음과 같은 해결책이 제공된다.
- 도망친다고 말해라.
npm install -g react-native-cli
에node v6.9.5
. - 이제 만들어라!
node v6.9.5
실행으로 인해 기본값으로nvm alias default 6.9.5
- 자, 뛰어.
react-native run-ios
문제는 다음과 같은 방법으로 여러 버전의 노드를 설치했다는 것이다.nvm
그리고 설치하기 위해react-native-cli
포인트가 될 기본 노드로 표시되지 않은 노드의 최신 버전을 전환하거나 설치한 경우nvm
아기도 . 달리면react-native run-ios
이렇게 하면 기본값인 또 다른 새로운 터미널 창이 열린다.nvm
당신이 .react-native-cli
위의 설정을 따르십시오. 도움이 되었으면 좋겠소.
당신의 프로젝트에 .js번들이 있는지 확인하시오.
추가하다
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
대응 네이티브 코드에서 프로젝트를 다시 시작하십시오.
나는 위의 모든 해결책을 시도해 보았지만, 내게는 효과가 없었다.이게 나한테 효과가 있는 거야, 위의 답변이 너에게 맞지 않았다면 너도 한번 시도해봐.
Xcode에서 프로젝트 작업 공간 열기 및 삭제
main.jsbundle
[PROJECT-NAME]/main.js번들 파日에 저장동일한 폴더에 새 main.jsbundle을 만드십시오.{우클릭 -> 새 파일 선택 -> 대화 상자가 열리며, 다음을 찾는다.
Others
-> 섹션, -> 선택을 한다.Empty
-> 파일에 이름을 붙이다.main.jsbundle
-> 세이브그런 다음 프로젝트의 터미널로 돌아가십시오.그리고 다음 명령을 실행하십시오.
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
- 패키지 프로그램을 시작하고 IOS 앱을 다시 실행하십시오.
나는 이것이 너에게 도움이 되길 바란다.
'IT이야기' 카테고리의 다른 글
UTC datetime 문자열을 로컬 datetime으로 변환 (0) | 2022.03.09 |
---|---|
vue-무한 로드 요소를 재설정하는 방법? (0) | 2022.03.09 |
문자열 변수로 텍스트 파일을 읽고 새 줄을 분리하는 방법 (0) | 2022.03.09 |
TypeScript의 재귀 부분 (0) | 2022.03.08 |
Vuex 저장소를 교체하지 않고 Vuex 업데이트 (0) | 2022.03.08 |