เมื่อฉันเรียกใช้โปรเจคต์ตอบโต้พื้นเมืองฉันได้รับข้อผิดพลาดno bundle URL present
แต่ฉันไม่รู้ว่าทำอะไรผิดพลาดฉันสับสนมาก
rm -rf ios/build/
watchman watch-del-all
เมื่อฉันเรียกใช้โปรเจคต์ตอบโต้พื้นเมืองฉันได้รับข้อผิดพลาดno bundle URL present
แต่ฉันไม่รู้ว่าทำอะไรผิดพลาดฉันสับสนมาก
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 build (โดยไม่ต้องกังวลเกี่ยวกับหน้าจอข้อผิดพลาดสีแดงทั่วไปที่ปรากฏขึ้นมาจากความตาย) โดยใช้ทางลัด alias ง่ายๆ:
rni
ฉันเพิ่งพบปัญหานี้เช่นกัน (ครั้งแรกที่เริ่มต้นกับ React Native) ปัญหาหายไปเมื่อ - ในขณะที่การจำลอง iOS ( 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",
สารละลาย:
ค้นหา 8081 ใน Xcode และแทนที่ทั้งหมดด้วย 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>
localhost
เป็นที่อยู่เครือข่ายท้องถิ่นของฉันใน Info.plist และด้วยเหตุนี้มันจึงไม่ได้รับการแก้ไข ฉันเพิ่มบล็อกสำหรับ 'localhost' เป็นโดเมนข้อยกเว้นและใช้งานได้
ปิดโปรแกรมจำลองและเทอร์มินัลของคุณ เปิดใหม่แล้วไปที่โครงการของคุณจากนั้นอัปเกรดปฏิกิริยาตอบสนองของคุณเช่นนี้:
react-native upgrade
ปัญหาใน: การเรียกซ้ำไม่สิ้นสุดใน RCTFatal เมื่อบันเดิลไม่สามารถดำเนินการได้
เหตุผล:
นี่เป็นเพราะแอปไม่สามารถค้นหาเซิร์ฟเวอร์ (ซึ่งให้บริการ UI - ด้วยรหัสจาวาสคริปต์)
สารละลาย:
npm run start
หรือyarn start
ก่อนLoading dependency graph, done.
)react-native run-ios/android
คำอธิบาย:
React Native มาพร้อมกับ 2 ส่วน:
สร้างคำสั่ง:
react-native run-ios/android
คือการสร้างชิ้นส่วนเนทิฟจากนั้นนำไปใช้กับอุปกรณ์และเริ่มแอพบนอุปกรณ์ โดยปกติจะใช้เวลา 3 ~ 4 นาทีเพื่อให้เสร็จ
npm run start
หรือyarn start
จะสร้างส่วนจาวาสคริปต์และเริ่มเซิร์ฟเวอร์ dev เพื่อให้บริการ UI ที่สร้างขึ้นกับแอพ โดยปกติจะใช้เวลา 30 วินาทีเพื่อให้เสร็จ
=> โดยปกติชิ้นส่วนจาวาสคริปต์จะเสร็จสิ้นก่อนจากนั้นส่วนถิ่นกำเนิดจะมาในภายหลัง (ขึ้นอยู่กับเวลาที่ใช้)
=> นี่เป็นจริงสำหรับบิลด์ครั้งแรกเท่านั้น (บิลด์ใหม่)
=> สำหรับการสร้างใหม่:
ส่วนเนทีฟใช้เวลา 10 ~ 15 วินาทีในการตรวจสอบการเปลี่ยนแปลงและเนื่องจากไม่มีการเปลี่ยนแปลงส่วนดั้งเดิม => ก่อนที่จะสร้างและเสิร์ฟส่วนจาวาสคริปต์ (ฉันไม่แน่ใจว่าส่วน javascript นั้นถูกสร้างใหม่หรือไม่ แต่ใช้เวลานานกว่าส่วนดั้งเดิม)
ดังนั้นนี่คือเหตุผลที่เรามีปัญหานี้แอปทำงานและสิ่งที่จำเป็นที่ยังไม่มีอยู่
โบนัส:
react-native run-ios/android
จะเริ่มต้นเซิร์ฟเวอร์ dev ให้คุณโดยอัตโนมัติreact-native run-ios/android
ขวาหลังจากที่react-native init <app_name>
ทุกอย่างวิ่งดี (เพราะคุณสมบัติเริ่มอัตโนมัติและเวลาที่ใช้สำหรับการสร้างใหม่ตามที่ระบุข้างต้น)เวลาที่ใช้ในคำตอบนี้สัมพันธ์กับเครื่องของฉัน => อาจแตกต่างกันในคนอื่น ๆ
ลองใช้รหัสนี้:
$ sudo xcodebuild -license
วิธีนี้อาจแก้ไขปัญหาได้ มันใช้งานได้สำหรับฉัน
ฉันมีข้อผิดพลาดเดียวกันและสามารถเรียกใช้แอปผ่าน Xcode เท่านั้น react-native run-ios
ไม่ทำงาน. เพื่อแก้ไขปัญหาที่คุณต้องการที่จะลบโฟลเดอร์ที่build
YOUR_PROJECT/ios/build/
หลังจากนี้คุณจะสามารถเรียกใช้แอปของคุณreact-native run-ios
อีกครั้ง หวังว่านี่จะช่วยได้
กรณีส่วนใหญ่ปัญหานี้เกิดขึ้นเมื่อการค้นหา DNS / การค้นหา IP ล้มเหลวในการค้นหา localhost
สารละลาย :
ลองเพิ่ม localhost ip ไปยังไฟล์โฮสต์ ฯลฯ ของคุณ
คุณสามารถเพิ่มบรรทัดด้านล่างลงในไฟล์โฮสต์ของคุณ etc (/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 Broadcasthost
:: 1 ลิตร ocalhost
เพื่อยืนยันว่าปัญหานี้เป็นปัญหา คุณสามารถกดมัด URL บนซาฟารี (ถ้าคุณลองด้วยโครเมี่ยมการดำเนินการนี้จะแก้ไขได้ แต่ซาฟารีจะไม่สามารถแก้ไขได้) http: // localhost: 8081 / index.ios.bundle แพลตฟอร์ม iOS = & dev = true & ลดขนาด = false
ตรวจสอบให้แน่ใจว่าการตั้งค่า ATS ของคุณถูกต้องในไฟล์. plist
คุณสามารถค้นหาไฟล์ได้ที่/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
ปัญหานี้กำลังเกิดขึ้นกับทุกคนเพราะเวอร์ชันอัลฟ่าปฏิกิริยารุ่นใหม่กำลังถูกปล่อยออกมา
"plugins": ["transform-decorators-legacy"]
ไฟล์. babelrc ของคุณ หรือลองใช้ด้วย 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
อีกครั้ง
ที่มา: Andrew Bancroft
นี่เป็นปัญหาของ react-native v0.42.1 พยายามปิดอินสแตนซ์เทอร์มินัลและ XCode ทั้งหมดแล้วเรียกใช้:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
ก่อนปิดเครื่องมือจำลองจากนั้นเรียกใช้เครื่องมือเหล่านี้บนเทอร์มินัล
npm install
react-native run-ios
เพิ่งทำงานในเทอร์มินัลreact-native start
:
cd your react native app directory/ react-native start
มันจะเริ่มขึ้นผู้ทำหีบห่อตอนนี้อย่าปิดหน้าต่างเทอร์มินัลนี้ในหน้าต่างเทอร์มินัลอื่นเรียกใช้โครงการของคุณ นี่เป็นสิ่งเดียวที่ฉันต้องการเพื่อให้มันทำงานได้อย่างถูกต้อง
ฉันพบวิธีที่ง่ายที่สุด / เร็วที่สุดในการเลี่ยงผ่านสิ่งนี้คือออกจากแอพภายในตัวจำลอง (2 x Cmd + Shift + H
) และเปิดตัวอีกครั้ง
ฉันมีปัญหาเดียวกันนี้ แต่ปัญหาของฉันคือ Mac และ iPhone ของฉันไม่ได้อยู่ในเครือข่าย wifi เดียวกัน
เพื่อให้แน่ใจว่าพวกเขาทั้งหมดอยู่ในเครือข่ายเดียวกันและสร้างใหม่อีกครั้ง หากไม่เป็นเช่นนั้นให้ลองวิธีแก้ไขปัญหาที่สมาชิกคนอื่น ๆ พูดถึงที่นี่
ตรวจสอบพร็อกซีเครือข่ายของคุณปิดดีกว่า
หรือคุณควรหาวิธีอื่นในการดูแลเซิร์ฟเวอร์แพ็คเก็ต
มันก็เกิดขึ้นกับฉันเช่นกันหลังจากรีสตาร์ทแม็คของฉัน มีหน้าต่างเทอร์มินัลสำหรับเรียกใช้แพคเกจเปิดขึ้นเมื่อคุณรันแอพของคุณในเครื่องจำลอง ฉันปิดหน้าต่างนั้นและยุติกระบวนการ (ฉันก็ปิดเครื่องจำลอง), จากนั้นให้เรียกใช้อีกครั้ง - พื้นเมือง - run-ios และทุกอย่างทำงานได้ดี
ในกรณีของฉันปัญหาได้รับการแก้ไขโดยการรีสตาร์ทadb
เซิร์ฟเวอร์:adb kill-server && adb start-server
ฉันมีปัญหานี้เกิดขึ้นกับฉันเช่นกัน ... ปัญหาคือแพ็คเกอร์ไม่ทำงานดูเหมือนว่าอาจเป็นเพราะเชลล์เริ่มต้นของฉันคือ zsh ยางตอบสนองดั้งเดิมเพื่อเปิดหน้าต่างเทอร์มินัลใหม่และเรียกใช้.../node_modules/react-native/packager/launchPackager.command
แต่สิ่งนี้ไม่ได้ทำงาน ทำงานด้วยตนเอง (และทำให้มันทำงาน) แก้ไขปัญหานี้ให้ฉัน
ตรวจสอบคีย์ 'localhost' ของคุณที่ NSExceptionDomains dict ใน info.plist
หากไม่มีอยู่จะทำให้เกิดข้อผิดพลาด
สมมติว่าคุณกำลังใช้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 # - (บูล) isPackagerRunning: (NSString *)
การเปลี่ยนแปลงของรหัส:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
นี่คือการตกลงสำหรับจำลอง หากเป็นอุปกรณ์ให้เปลี่ยนที่อยู่ IP เป็นเครื่องของคุณ
อีกสิ่งหนึ่งที่ทำงานได้สำหรับฉันคือเปิดโครงการใน xcode แล้วทำความสะอาดและสร้าง โดยปกติจะรันเซิร์ฟเวอร์บรรจุภัณฑ์ซ้ำและแก้ไขปัญหา
ดำเนินการคำสั่งด้านล่าง:
killall -9 node
rm -rf ios/build
react-native run-ios
มันจะเปิด launchpackager.command และแอปพลิเคชันจะติดตั้งบนเครื่องจำลอง iOS
ตรวจสอบให้แน่ใจว่าlaunchPackage.command
กำลังทำงานในเทอร์มินัลแล้วลองเรียกใช้อีกครั้ง มันจะสร้างมัด มันเหมือน webpack-dev-server