Tổng quat
Tôi sẽ giải thích tại sao điều này lại xảy ra và sau đó là cách khắc phục sự cố "Thiếu SDK cơ sở" cụ thể. Bạn có thể bỏ qua phần cuối chỉ để biết bản sửa lỗi, mặc dù tôi khuyên bạn nên đọc tất cả những điều này. Tôi cũng khuyên bạn nên thực hiện xuất sắc vấn đề này của John Muchow .
Nếu bạn đặc biệt quan tâm đến bản nâng cấp Xcode 3.2.4, có một vấn đề liên quan nghiêm trọng, bạn có thể muốn thông báo tại đây .
Một SDK để cai trị tất cả
Đây là thỏa thuận: 4.0 hiện là phiên bản SDK duy nhất được phép gửi các ứng dụng chỉ dành cho iPhone mới hoặc cập nhật. Đây là trực tiếp từ Danh sách kiểm tra mức độ sẵn sàng cho iOS 4 của Apple (reg reqd):
Tất cả các ứng dụng mới và bản cập nhật cho các ứng dụng hiện có phải được xây dựng với iPhone SDK 4. Xin lưu ý, App Store sẽ không còn hỗ trợ các ứng dụng nhắm mục tiêu iOS 2.x.
Có lẽ - tôi đoán ở đây - các ứng dụng phổ thông và chỉ dành cho iPad nên sử dụng SDK 3.2. Đó là lý do tại sao 4.0 & 3.2 là lựa chọn duy nhất của bạn cho SDK.
Đó cũng là lý do tại sao dự án của bạn hiện đã bị hỏng, vì SDK mà nó được ánh xạ trước đó không được dùng nữa , gones-ville.
(Nhưng) 3 là một con số kỳ diệu
Thư giãn. Bạn vẫn có thể nhắm mục tiêu các thiết bị chạy iPhone OS 3.0 (nhưng không thấp hơn). SDK bạn sử dụng để biên dịch không giới hạn - xuống - phiên bản iOS nào bạn có thể lập trình hoặc hỗ trợ. Khi bạn đã vá mọi thứ trong dự án của mình, v.v. (xem phần tiếp theo), bạn có thể đặt "Mục tiêu triển khai hệ điều hành iPhone" thành phiên bản iOS thấp hơn. Để biết nhanh cách thực hiện việc này, x. bước 7 trong phần tiếp theo.
Lưu ý rằng bạn đang đi vào một số địa hình khó khăn. Trình biên dịch Xcode 3.2.3 thông thường của bạn sẽ không còn thực thi tuân thủ của bạn đối với các cuộc gọi chỉ 3.0 nữa, cũng như không có trình mô phỏng cho các cuộc gọi này. Và nếu bạn muốn hỗ trợ các tính năng 4.0, bạn sẽ phải thực hiện một số mã có điều kiện để ngăn chặn sự cố trên các thiết bị 3.0. Vui vẻ.
Bạn vẫn có thể tải xuống (từ Apple!) Và cài đặt phiên bản Xcode hoặc SDK trước đó (xem tại đây ). Có, bạn có thể cài đặt nhiều phiên bản Xcode, trong các thư mục khác nhau, tức là chỉ đặt một phiên bản trong / Developer. Bạn có thể sử dụng Xcode cũ để kiểm tra tính tuân thủ của ứng dụng so với SDK 3.x, chuyển công việc khó khăn sang một trình biên dịch và trình mô phỏng ưa thích. Nhưng bạn không thể sử dụng các sản phẩm của SDK trước đó để gửi đến cửa hàng ứng dụng nữa.
FWIW, tôi chỉ định thực hiện việc kiểm tra này trước khi giao hàng.
Tình trạng của tôi là gì
Matt Gallagher có bài đăng Ca cao với Tình yêu trên mã điều kiện phiên bản có tên "Mẹo & Thủ thuật cho mã iOS3, iOS3.2 và iOS4 có điều kiện" . Nếu bạn đang có kế hoạch sử dụng các tính năng 4.0 có điều kiện, đây là một khuyến nghị mạnh mẽ để kiểm tra nó.
Khắc phục "Thiếu SDK cơ sở"
- Tải dự án của bạn
- Từ menu, chọn Dự án> Chỉnh sửa Cài đặt Dự án ...
- Trong Kiến trúc> SDK cơ sở, chọn một trong các tùy chọn thiết bị có sẵn: iPhone 3.2 hoặc iPhone 4.0. Nếu bạn chỉ sử dụng iPhone, 4.0 là con đường phù hợp.
- Đóng cửa sổ đó.
- Từ menu, chọn Dự án> Chỉnh sửa Mục tiêu Hoạt động "YourTarget"
- Trong Kiến trúc> SDK cơ sở, chọn một trong các tùy chọn thiết bị hoặc trình mô phỏng có sẵn: iPhone 3.2 hoặc iPhone 4.0.
- Nếu bạn muốn nhắm mục tiêu các phiên bản iOS trước đó, thì trong cùng cửa sổ đó, trong Triển khai> Mục tiêu triển khai hệ điều hành iPhone, hãy chọn phiên bản thấp nhất mà bạn muốn hỗ trợ. Lưu ý rằng hỗ trợ cho các phiên bản 2.x thông qua cửa hàng ứng dụng không được dùng nữa. Xem trích dẫn "Danh sách kiểm tra sự sẵn sàng" ở trên.
Vị trí SDK cơ sở cho Xcode 4 trở lên
Thực hiện theo các bước ở trên, nhưng đối với Bước # 2, hãy nhấp vào phần sau:
- Chọn trình điều hướng Dự án bằng cách sử dụng biểu tượng thư mục ở bên trái của thanh bên điều hướng
- Chọn Dự án, sẽ ở trên cùng của dạng xem đó.
- Cấu hình dự án sẽ xuất hiện trong bảng chỉnh sửa chính; chọn "Cài đặt bản dựng" ở trên cùng và bên dưới sẽ là phần 'Kiến trúc'.
(Câu trả lời này là một phiên bản nhẹ thích nghi của Sherman Lo 's câu trả lời )
Phụ lục
Thông tin chi tiết hơn về chủ đề này cũng có thể được tìm thấy trong câu trả lời đầu tiên cho câu hỏi này . Cũng có một số thông tin hữu ích ở đây .