[ios] 반응 네이티브에서 ‘번들 URL 없음’의 의미는 무엇입니까?

반응 네이티브 프로젝트를 실행할 때 오류가 발생 no bundle URL present하지만 실수가 무엇인지 모르겠지만 매우 혼란 스러웠습니다.

여기에 이미지 설명을 입력하십시오



답변

다음을 수행하여 오류 No bundle URL present를 해결하십시오 .

  • 다시 빌드하기 전에 프로젝트 루트 디렉토리에서 다음 명령을 실행하여 iOS 빌드 디렉토리를 삭제하고 다른 React Native 세션 (기본 포트 8081에서 실행중인 것으로 가정)을 종료하십시오.

rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios

  • 위의 명령 조합을 별명으로 결합하고이 명령으로 Bash 구성 파일 .bashrc에 추가하여 이러한 오류가 발생하지 않도록 React Native 워크 플로우를 업데이트하십시오.

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=8082react-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

여기에 이미지 설명을 입력하십시오


답변

앱을 번들로 만들었을 때도 같은 문제가있었습니다. 귀하 main.jsbundle가 주요 프로젝트를 대상으로하고 있는지 확인하십시오


답변

오류 메시지에 지시 된대로 :

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>


답변

시뮬레이터와 터미널을 닫습니다. 새 프로젝트를 열고 프로젝트로 이동 한 후 다음과 같이 반응 네이티브를 업그레이드하십시오.

react-native upgrade

문제 : 번들 실행에 실패한 경우 RCTFatal에서 무한 재귀 .


답변

이유:

앱이 서버를 찾을 수 없기 때문입니다 (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>, 모든 것이 잘 달렸다. (자동 시작 기능과 위의 상태로 새로운 빌드에 시간이 걸렸기 때문에).
  • 다른 “제거”솔루션은 재 구축을 강요했기 때문에 효과가있었습니다.

이 답변에 사용 된 시간은 내 컴퓨터와 관련이 있었으며 => 다른 사람과 다를 수 있습니다.