Chạy ứng dụng react-native trên thiết bị iOS trực tiếp từ dòng lệnh?


104

Có thể chạy ứng dụng gốc phản ứng trên thiết bị iOS trực tiếp từ dòng lệnh như chúng ta làm trên trình mô phỏng react-native run ios --simulator "iPhone 5s"không?

Câu trả lời:


229

Điều sau đây phù hợp với tôi (được thử nghiệm trên phản ứng gốc 0.380.40):

npm install -g ios-deploy
# Run on a connected device, e.g. Max's iPhone:
react-native run-ios --device "Max's iPhone"

Nếu bạn cố gắng chạy run-ios, bạn sẽ thấy rằng tập lệnh đề xuất nên làm npm install -g ios-deploykhi đến bước cài đặt sau khi xây dựng.

Mặc dù tài liệu về các lệnh khác nhau mà react-native cung cấp hơi sơ sài, nhưng bạn nên tham khảo react-native / local-cli . Ở đó, bạn có thể xem tất cả các lệnh có sẵn và mã mà chúng chạy - do đó, bạn có thể tìm ra công tắc nào khả dụng cho các lệnh không có tài liệu.


2
Nếu bạn thấy điều gì đó giống ios deploy does not support the following options: idnhư tôi, iPhone của bạn đang chạy phiên bản iOS beta và bạn sẽ phải sử dụng phiên bản beta của Xcode. Hãy thử sudo xcode-select -s /Applications/Xcode-beta.app(giả sử bạn đã cài đặt đúng ứng dụng Xcode beta).
paulvs 14/1017

50
Đối với tôi chỉ react-native run-ios --devicehoạt động và lệnh trên thì không
narek

11
Nếu bạn gặp lỗi sau khi chạy npm install -g ios-deploy, hãy thử chạy sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener

5
Lưu ý rằng bạn có thể chạy các ứng dụng di động trong cấu hình relase trên một thiết bị với UDID của thiết bị iOS (bạn có thể nhận được một lỗi với tùy chọn --device cho tên thiết bị có không phải tiếng Anh nhân vật:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek

7
nhận được ** INSTALLATION SUCCEEDED **nhưng không có gì xảy ra trên thiết bị ... 100% được kết nối đúng cách và được Xcode nhận dạng. Thử cả câu trả lời chính và nhận xét: react-native run-ios --devicevới kết quả tương tự
Xanh Bot

32

Trước tiên hãy cài đặt thư viện bắt buộc trên toàn cầu trên máy tính của bạn:

npm install -g ios-deploy

Đi tới cài đặt của bạn trên iPhone của bạn để tìm tên của thiết bị.

Sau đó, cung cấp điều đó bên dưới như:

react-native run-ios --device "______\'s iPhone"

Đôi khi điều này sẽ không thành công và xuất ra một thông báo như sau:

Found Xcode project ________.xcodeproj
Could not find device with the name: "_______'s iPhone".
Choose one of the following:
______s iPhone Udid: _________

Udid đó được sử dụng như thế này:

react-native run-ios --device --udid 0412e2c230a14e23451699

Bạn có thể tùy ý sử dụng:

react-native run-ios --device --udid 0412e2c230a14e23451699 -- configuration Release

làm thế nào để bạn có được ID thiết bị?
santialur

1
ios-deploy -c # khi thiết bị của bạn được cắm vào
jasonleonhard

1
đối với tôi sudo npm install -g ios-deploy --unsafe-perm=trueđã làm việc.
Jay Mayu

thiết bị đầu vào vào usb-> Xcode-> Window-> Devices and Simulators-> Nhận dạng this is uuid (udid)
Giang

@jasonleonhard Nó ios-deploy -choạt động như thế nào , nó không phải là một công cụ dòng lệnh? nó được cho là yarn/npm ios-deploy -chay cái gì đó, vì điều đó cũng không hoạt động
Sam

12

Chạy lệnh này trong thư mục gốc của dự án.

1>. Danh sách thiết bị iPhone được tìm thấy Thiết bị thực và Trình mô phỏng được kết nối. giống như lệnh thiết bị adb cho android.

xcrun instruments -s devices

2>. Chọn thiết bị bằng lệnh này mà bạn muốn chạy ứng dụng của mình

Sử dụng tên thiết bị

react-native run-ios --device "Kool's iPhone"

Sử dụng UDID

react-native run-ios --device --udid 0412e2c2******51699

chờ và xem để chạy ứng dụng của bạn trên các thiết bị cụ thể - K00L;)


1
sử dụng phương pháp UDID, tôi gặp lỗi: "error Các deviceudidcác tùy chọn loại trừ lẫn nhau"
syumaK

7

Nếu bạn gặp lỗi này ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ...bằng cách sử dụngnpm install -g ios-deploy

Thử cái này. Nó hoạt động cho tôi:

  1. sudo npm uninstall -g ios-deploy
  2. brew install ios-deploy

4

Chỉ muốn thêm điều gì đó vào câu trả lời của Kamil

Sau khi làm theo các bước, tôi vẫn gặp lỗi,

lỗi Không thể tìm thấy thiết bị có tên: ".... 's Xr"

Sau khi xóa các ký tự đặc biệt khỏi tên thiết bị (Đi tới Cài đặt -> Chung -> Giới thiệu -> Tên )

Vd: '

Nó đã làm việc !

Hy vọng điều này sẽ giúp những người gặp phải vấn đề tương tự.

Đã thử nghiệm với - react-native-cli: 2.0.1 | react-native: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


Tôi gặp sự cố tương tự vì dấu nháy đơn thực sự là một dấu ngoặc kép bên phải unicode. Sau khi sao chép-dán tên thiết bị từ danh sách thiết bị, nó đã hoạt động.
Toma

1

Tôi đang làm việc với

react-native run-ios --device="My’s iPhone"

Và lưu ý rằng tên iphone của bạn, dấu nháy đơn có thể khác. Của tôi đang sử dụng cái này '


0

Trên thực tế, đối với bản dựng đầu tiên, hãy làm điều đó với Xcode và sau đó làm theo cách sau:

  1. brew install ios-deploy
  2. npx react-native run-ios --device

Lệnh thứ hai sẽ chạy ứng dụng trên thiết bị được kết nối đầu tiên .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.