2014-10-23 20 views
37

Một nơi nào đó trong các bản cập nhật khác nhau của XCode trong tháng trước, các phiên bản iOS đã giảm từ lựa chọn mô phỏng của tôi (hình ảnh bên dưới.) Bất cứ ai biết cách giải quyết vấn đề này?XCode sử dụng GUID thay vì số phiên bản iOS trong Lựa chọn mô phỏng

XCode simulators showing GUID not iOS version

+1

Nó cho thấy GUID phân biệt giữa nhiều trình mô phỏng với cùng một thiết bị và phiên bản iOS. Nếu bạn xóa các bản dupes trong cửa sổ Devices, danh sách sẽ được dọn sạch. – Bill

+0

Có thể dupe: http://stackoverflow.com/questions/26211593/ios-simulator-appear-with-udid-in-xcode-6 –

Trả lời

52

Làm thế nào để sửa chữa nó

Xcode sử dụng phiên bản thiết bị để disambiguate các thiết bị có cùng tên. Nếu hai thiết bị có cùng tên và số phiên bản, nó sẽ sử dụng các UDID của thiết bị.

Bạn có 4 trong số mỗi thiết bị (ví dụ: iPhone 5s). Tôi nghi ngờ rằng một số người trong số họ là dành cho cùng một phiên bản iOS. Bạn nên xóa một số bản sao. Hãy xem xcrun simctl listxcrun simctl delete hoặc sử dụng trình quản lý thiết bị trong Xcode.app (nhấp vào "-" để xóa thiết bị).

Làm thế nào để chỉ nhận được trở lại trạng thái mặc định

# Ensure all possible clients of CoreSimulatorService are no longer running: 

killall Xcode 2> /dev/null 
killall Instruments 2> /dev/null 
killall 'iOS Simulator' 2> /dev/null 
killall Simulator 2> /dev/null 
killall 'Simulator (Watch)' 2> /dev/null 
killall ibtoold 2> /dev/null 
killall simctl 2> /dev/null 
# There may be others 

# Kill the service itself 
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService 

# Remove all the data and logs 
rm -rf ~/Library/*/CoreSimulator 

Tại sao điều này có thể xảy ra:

CoreSimulatorService sẽ giám sát cho việc bổ sung các runtimes mô phỏng mới trong/Library/Developer/CoreSimulator/Profiles (ví dụ, khi tải chúng xuống từ Xcode -> Preferences -> Downloads). Khi cài đặt một thời gian chạy mới, CoreSimulatorService sẽ tạo một tập các thiết bị ban đầu cho thời gian chạy đó.

Sự cố này xảy ra nếu có nhiều phiên bản của CoreSimulatorService chạy cùng một lúc. Mỗi cá thể CoreSimulatorService sẽ tạo ra các thiết bị riêng của nó (nhưng các máy khách của nó sẽ chỉ thấy các bộ của các cá thể đó lúc đầu). Khi ra mắt sau đó (ví dụ: sau khi khởi động lại), cả hai bản sao sẽ được nhìn thấy. Người ta có thể nhận được vào một trạng thái mà nhiều bản sao của CoreSimulatorService đang chạy cùng một lúc do thử nghiệm phiên bản beta của Xcode.app trong cùng một phiên đăng nhập như sử dụng Xcode.app đã phát hành hoặc bằng cách sử dụng Xcode.app trước và sau khi cập nhật nó thông qua App Store.

Nếu bạn nhận thức được bất cứ cách nào khác mà lỗi này có thể xảy ra, xin vui lòng nộp radar mới tại http://bugreport.apple.com

+0

Tôi muốn thêm rằng nó rất dễ dàng để thêm mô phỏng trở lại với (+) nút , do đó, đừng lo lắng nhiều về việc xóa sai (s) (trừ khi bạn có dữ liệu quan trọng trên giả lập mà bạn muốn lưu). –

17

Xóa nhiều bản sao của cùng một phiên bản từ cửa sổ Devices đã làm các trick cho tôi.

+7

Điều này * không * trả lời câu hỏi "Bất kỳ ai biết cách giải quyết vấn đề này?" Mặc dù Kijit Desai không đưa ra giả thuyết về lý do tại sao nhiều trình mô phỏng cùng phiên bản xuất hiện, nhưng phương pháp đơn giản nhất (tất cả từ bên trong Xcode) để giải quyết tình huống này thực sự là xóa các phiên bản-sim từ cửa sổ Thiết bị của Xcode. – greymouser

Các vấn đề liên quan