rm -rf ios/build/
watchman watch-del-all
rm -rf ios/build/
watchman watch-del-all
답변:
다음을 수행하여 오류 No bundle URL present
를 해결하십시오 .
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
이제 간단한 별칭 바로 가기를 사용하여 React Native iOS 빌드를 실행할 수 있습니다 (죽음의 일반적인 빨간색 오류 화면이 나타날 염려없이).
rni
방금이 문제에 부딪 쳤습니다 (처음으로 React Native 시작). 아이폰 OS 시뮬레이션 (상태 - 문제는 때 사라 react-native run-ios
)를 실행했다 - 내가 실행 npm install
한 후와 react-native run-ios
다시. 터미널 창에서 번들로 묶음을 표시 한 다음 시뮬레이터에서 시작 화면을 표시했습니다.
적요이 링크를 확인 후 react-native init PropertyFinder
사용에 선 시도 npm start
(이 사람이 나를 위해 작동)
===================================================== ======================
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
오류 메시지에 지시 된대로 :
Xcode / iOS 라이센스에 동의하려면 관리자 권한이 필요합니다. "sudo xcodebuild -license"를 실행 한 다음이 명령을 다시 시도하십시오.
다음 명령을 실행하면 작동합니다.
sudo xcodebuild -license
이 문제는 localhost를 통한 안전하지 않은 연결을 허용하지 않거나 http를 통해 안전하지 않은 연결을 허용하려고 할 때 발생합니다.
이 문제를 해결하려면 다음을 추가하십시오 info.plist
.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhost
Info.plist 에서 예외 도메인을 로컬 네트워크 주소로 변경 했기 때문에 해결되지 않았습니다. 예외 도메인으로 'localhost'에 대한 블록을 추가하고 작동했습니다.
시뮬레이터와 터미널을 닫습니다. 새 프로젝트를 열고 프로젝트로 이동 한 후 다음과 같이 반응 네이티브를 업그레이드하십시오.
react-native upgrade
이유:
앱이 서버를 찾을 수 없기 때문입니다 (UI를 제공하는-자바 스크립트 코드로).
해결책:
npm run start
또는 yarn start
처음Loading dependency graph, done.
)react-native run-ios/android
설명:
React Native에는 두 부분이 있습니다.
빌드 명령 :
react-native run-ios/android
네이티브 부분을 빌드 한 다음 장치에 배포하고 장치에서 앱을 시작하는 것입니다 (시뮬레이터 / 에뮬레이터 / 실제 장치). 완료하는 데 보통 3 ~ 4 분이 걸렸습니다.
npm run start
또는 yarn start
자바 스크립트 부분을 빌드하고 개발자 서버를 시작하여 빌드 된 UI를 앱에 제공하는 것입니다. 보통 30 초가 걸렸습니다.
=> 일반적으로 자바 스크립트 부분이 먼저 끝난 다음 기본 부분이 나중에옵니다. (사용한 시간 기준).
=> 이것은 처음 빌드 (신규 빌드)에만 해당됩니다.
재 구축의 경우 => :
네이티브 부분은 변경 사항을 확인하는 데 10 ~ 15 초가 걸렸으며 자바 스크립트 부분을 빌드하고 제공하기 전에 네이티브 부분 => 변경이 수행되지 않았기 때문에. (자바 스크립트 부분이 다시 작성되었는지 확실하지 않지만 기본 부분보다 시간이 오래 걸렸습니다)
그래서 우리 가이 문제를 겪었던 이유는 앱이 실행되었고 아직 존재하지 않는 것을 요구했습니다.
보너스:
react-native run-ios/android
자동으로 개발자 서버를 시작합니다.react-native run-ios/android
직후 react-native init <app_name>
, 모든 것이 잘 달렸다. (자동 시작 기능과 위의 상태로 새로운 빌드에 시간이 걸렸기 때문에).이 답변에 사용 된 시간은 내 컴퓨터와 관련이 있었으며 => 다른 사람과 다를 수 있습니다.
이 문제는 대부분 DNS 조회 / IP 조회가 로컬 호스트를 찾지 못하는 경우에 발생합니다.
해결책 :
etchost 파일에 localhost ip를 추가하십시오.
아래 줄을 etc 호스트 파일 (/ etc / hosts)에 추가 할 수 있습니다
127.0.0.1 로컬 호스트
255.255.255.255 브로드 캐스트 호스트
:: 1 리터. ocalhost
이것이 문제임을 확인하기 위해 safari에서 번들 URL을 칠 수 있습니다 (크롬으로 시도하면 해결되지만 safari는 해결할 수 없습니다). http : // localhost : 8081 / index.ios.bundle? platform = 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) 반응 네이티브 빌드를 깨뜨리기 때문에 모든 사람에게 발생합니다.
"plugins": ["transform-decorators-legacy"]
.babelrc 파일에 추가해보십시오 . 또는 connect HOC로 시도하십시오.
The node type SpreadProperty has been renamed to SpreadElement
과 @babel
안의 참조 라이브러리이며 node_modules
, 이것을 해결 한 것은 아무것도 발견하지 못했다.
해결책->
npm start
그런 다음 새 터미널을 열고 프로젝트 경로로 이동 한 다음
react-native run-ios
나에게 적합합니다.
나를 위해 무엇을 해결 했습니까?
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
터미널에서 실행하십시오 react-native start
.
cd your react native app directory/ react-native start
패키지가 시작되고, 이제이 터미널 창을 닫지 마십시오. 다른 터미널 창에서 프로젝트를 실행하십시오. 이것이 내가 제대로 작동하도록하는 유일한 방법입니다.
나는이 같은 문제가 있었다. 그러나 내 문제는 내 Mac과 iPhone이 동일한 Wi-Fi 네트워크에 있지 않다는 것입니다.
따라서 모두 동일한 네트워크에 있는지 확인하고 다시 한 번 다시 작성하십시오. 그렇지 않은 경우 여기에서 다른 구성원이 언급 한 솔루션을 시도하십시오.
네트워크 프록시를 확인하고 종료하십시오.
또는 패키저 서버를 유지 관리하는 다른 방법을 찾아야합니다.
제 경우에는 adb
서버 를 다시 시작하여 문제가 해결되었습니다 .adb kill-server && adb start-server
info.plist의 NSExceptionDomains dict에서 'localhost'키를 확인하십시오.
존재하지 않으면 오류가 발생합니다.
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
. 위의 설정을 따르면 도움이되기를 바랍니다.
프로젝트에 .jsbundle이 있는지 확인하십시오.
더하다
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
반응 네이티브 코드에서 프로젝트를 다시 열어보십시오.
나는 함께 일하고있다 RN 0.49.5
있습니다. 나는 많은 방법을 시도했지만 아무도 효과가 없습니다. 마침내 나는 이것을 해결했다. 간단하고 쉽습니다.
주요 아이디어는을 변경하는 것입니다 localhost
에 127.0.0.1
있지만, RN 당신을 알려줍니다 곳이 아니다. 이 글은 다음의 RCTBundleURLProvider.m 번호 - (BOOL) isPackagerRunning : (있는 NSString *) 호스트 .
코드 변경 :
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
시뮬레이터에는 문제가 없습니다. 장치 인 경우 IP 주소를 컴퓨터로 변경하십시오.