2013-01-24 38 views
5

Tôi đang cố gắng giải quyết một câu đố khó hiểu mà tôi thực sự đánh giá cao sự giải thích vì điều này sẽ giúp tôi hiểu các công cụ và tự tin về những gì tôi làm.Nếu VALID_ARCHS đặt thành armv7 armv7a, thì xcode xây dựng cho trình mô phỏng như thế nào?

Tôi đã xem qua câu đố khi quay lên dòng lệnh xcodebuild để xây dựng ứng dụng iPhone của tôi. Tôi đã tìm thấy từ chối '-sdk iphonesimulator6.0' với thông báo này: "Không có kiến ​​trúc nào để biên dịch (ARCHS = i386, VALID_ARCHS = armv7). "

Sau đó tôi thấy VALID_ARCHS của tôi đã được thiết lập để ARMv7 và xuất hiện để giải thích lý do tại sao xcodebuild từ chối xây dựng cho mô phỏng (mà tôi dẫn dắt bản thân mình để tin là intel). Nhưng làm thế nào trên trái đất không XCode IDE của tôi đi xung quanh nó và quản lý để xây dựng cho mô phỏng (mà nó)

Thay đổi VALID_ARCHS để:? VALID_ARCHS = "$ (ARCHS_STANDARD_32_BIT)"; (mà mở rộng để ARMv7 và armv7a) hoặc VALID_ARCHS = ARMv7 i386 dường như đã hài lòng xcodebuild đủ để đồng ý để xây dựng cho giả lập.Tuy nhiên bạn, trường hợp đầu tiên vẫn không liệt kê i386! Và tôi phải kết luận i386 trở thành, trong cond nhất định itions, ngầm định. Bất cứ ai có thể xác nhận và/hoặc mở rộng trên bất kỳ điều này?

Trả lời

1

Khi xcode xây dựng trên i386 nó thay đổi các biến này, bạn có thể chứng kiến ​​này trong xcode Log navigator ...

Đây là những biến Xcode thao tác để cho phép chạy trên i386

VALID_ARCHS = i386 Vòm = i386

Bạn có thể làm như vậy bằng cách gọi lệnh xcodebuild theo cách sau đây:

xcrun xcodebuild VALID_ARCHS=i386 ARCHS=i386 ONLY_ACTIVE_ARCH=NO -arch i386 -sdk iphonesimulator7.1 -configuration Debug