Kể từ Xcode 6, bạn sẽ có thể sử dụng simctl
để thực hiện việc này.
1) Lấy danh sách các thiết bị có sẵn:
xcrun simctl list devices
1a) Giả sử bạn đã jq
cài đặt, bạn có thể sử dụng nó để chỉ nhận được những thiết bị thực sự sẵn sàng:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.availability | contains("(available)")) '
1b) Hoặc thậm chí lọc thêm bằng iPhone hoặc iPad:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) '
2) Khi bạn có UDID của thiết bị bạn muốn cài đặt vào:
xcrun simctl install $DEVICE_UDID /path/to/your/app
2a) Hoặc, nếu bạn muốn chỉ cần cài đặt cho thiết bị khởi động:
xcrun simctl install booted /path/to/your/app
đâu này được thực sự tiện dụng là nếu bạn muốn chạy cùng một ứng dụng trên tất cả các thiết bị:
1) thiết lập lại/xóa tất cả mô phỏng:
xcrun simctl erase all
2) mở một trường hợp mô phỏng cho mỗi bài kiểm tra:
open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
(Ignore the 'Booted' error and switch hardware.)
3) Nhận UDID của thiết bị có sẵn, chúng tôi muốn cài đặt vào:
DEVICES=$(xcrun simctl list devices -j | jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) | select(.state == "Booted") | .udid ')
4) Cài đặt ứng dụng (mà phải được xây dựng cho mô phỏng thích hợp SDK):
for device in DEVICES ; do xcrun simctl install $device /path/to/app ; done
5) để thuận tiện, khởi động ứng dụng trên mỗi thiết bị:
for device in $DEVICES ; do xcrun simctl launch $device your.product.app.id ; done
Đáng buồn thay, điều này dường như không hoạt động nữa (Tôi đang sử dụng iOS 7.1) – thomers
Xin lỗi, tôi cần phải cụ thể hơn. Thư mục vẫn còn đó, các tệp được sao chép, nhưng trình mô phỏng không hiển thị ứng dụng trên bàn đạp. – thomers
@thomers nó hoạt động với iOS 7.1, bạn chỉ cần đặt tập lệnh này vào thư mục 'project_name.app' và đổi tên' 6.0' thành '7.1' (nhưng thường bị treo). Sau đó, bạn chạy 'installApp' từ thư mục đó. Vì vậy, nếu tôi có 'project.app /' với một 'project' bên trong. Tôi sẽ 'cd project.app /' và chạy './installApp project'. Tôi cũng để lại nhận xét này là tài liệu tốt hơn cho người đọc trong tương lai. – film42