2010-09-19 41 views
18

Tôi đã cài đặt nhiều phiên bản Xcode. Tôi có thể xây dựng dự án của mình dựa trên các phiên bản iOS cũ hơn bằng cách khởi chạy Xcode cũ. Nhưng làm thế nào tôi có thể sử dụng các phiên bản Xcode mới hơn để xây dựng dựa trên các phiên bản iOS cũ hơn?Cách xây dựng dựa trên các phiên bản iOS cũ hơn với các bản tải xuống Xcode mới nhất?

Trong cài đặt dự án, có trình đơn thả xuống SDK cơ sở. Nó chỉ cung cấp phiên bản iOS mới nhất để lựa chọn.

Dưới/Developer/Platforms/có một thư mục iOS.platform chứa này:

SDKs/ 
    iPhoneOS3.2.sdk 
    iPhoneOS4.1.sdk 

Và cuối cùng, có một thư mục thú vị được gọi là DeviceSupport, trong đó có một bó toàn bộ các phiên bản khác nhau, từ 3,0 đến 4.1!

Phải có cách sao chép SDK/tệp hỗ trợ thiết bị từ Xcode cũ sang Xcode mới và làm cho các tệp cũ hơn như iOS 4.0 hoặc thậm chí 3.0 hoạt động. Làm sao?

+0

Đây là một chuỗi rất hữu ích về điều này, đặc biệt là đối với người dùng Xcode 4 trên OS X Lion: http://stackoverflow.com/questions/7459399/ios-simulator-only-list-the-latest-ios-version- các phiên bản trước đó có thể được đặt trước – Jan

Trả lời

21

Để thực hiện mục tiêu ứng dụng chạy trên nhiều phiên bản iOS tương đối đơn giản: Đặt "SDK cơ sở" trong cài đặt dự án của bạn thành số phiên bản iOS mới nhất có các tính năng bạn có thể muốn. Thiết lập “hệ điều hành iPhone Triển khai mục tiêu” với số phiên bản lâu đời nhất của iOS mà bạn sẽ hỗ trợ

bạn sẽ cần phải cài đặt phiên bản cũ của xcode kể từ khi mô phỏng mới sẽ chỉ hỗ trợ ios phiên bản mới hơn

http://developer.apple.com/library/mac/#documentation/Xcode/Conceptual/XcodeCoexistence/Contents/Resources/en.lproj/Details/Details.html

+1

nếu bạn có các SDK cũ hơn, bạn có thể thả chúng vào {Xcode_Path} /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ Tôi sao chép tệp cũ của tôi (4.1, 4.2, 4.2, 5.0) SDK khi tôi cập nhật Xcode (vì bản cập nhật Xcode chỉ có SDK mới nhất) và tôi dán chúng trở lại vào thư mục này và bây giờ tôi có thể mô phỏng các SDK cũ hơn trên cùng một Trình mô phỏng iOS. Bạn vẫn phải cài đặt Xcode cũ hơn để có quyền truy cập vào các SDK cũ hơn nhưng một khi bạn có, bạn có thể xóa Xcode cũ. – Daniel

+9

Liên kết đã chết. – cmroanirgo

4

Điều này trở nên khó khăn hơn trong Xcode 3.2.5 (iOS 4.2.1) vì các giá trị "SDK cơ sở" riêng biệt cho Thiết bị và Trình mô phỏng được thay thế bằng một "SDK iOS" duy nhất.

Xem bài đăng của tôi trong XCode/Simulator: How to run older iOS version? để biết chi tiết về cách truy cập phiên bản SDK mô phỏng cũ hơn trong Xcode mới nhất này.

0

Tôi nghĩ bạn nên luôn xây dựng bằng SDK mới nhất và chỉ cần đặt mục tiêu triển khai thành phiên bản thích hợp. Để đảm bảo ứng dụng của bạn chạy đúng, hãy kiểm tra kỹ mọi thứ trên tất cả các phiên bản và bên cạnh kiểm tra tài liệu nếu API bạn đang sử dụng đã thay đổi/xóa/không được chấp nhận trong các phiên bản SDK khác nhau!

+4

Đó là giá trị xây dựng dựa trên các SDK cũ hơn để nắm bắt những trường hợp bạn đã sử dụng cuộc gọi API mới hơn không tồn tại trong SDK cũ hơn. Các lỗi này trở thành các lỗi biên dịch thay vì các ngoại lệ thời gian chạy, dễ dàng hơn để gỡ lỗi. – SteveCaine

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