Cài đặt Xcode 3.2.3 w / iPhone SDK 4, nhận được "Thiếu SDK cơ sở", không thể xem các SDK khác


80

Tôi đã tạo wiki cộng đồng này để liên kết với nhau một số Q / A khác mà tôi đã thấy ở đây trên SO. Nếu bạn đang ở đây, có thể bạn đã cài đặt phiên bản cuối cùng của Xcode 3.2.3 với iPhone SDK 4 ( liên kết tải xuống , reg reqd) và sau đó gặp phải một hoặc cả hai sự cố sau:

  • Trong dự án iPhone Xcode đang hoạt động trước đây của bạn, bạn nhận được "Thiếu SDK cơ sở" ở đâu đó. Một cái gì đó như thế này:

    Ruh-roh!

  • Trong một quan sát có liên quan nhưng tổng quát hơn, không có lựa chọn nào trong số các lựa chọn SDK Thiết bị hoặc Trình mô phỏng có sẵn trước đây (ví dụ: 3.0, 3.1, 3.1.3, ...) có sẵn ở nơi bạn từng xem chúng.

Câu trả lời:


165

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ở"

  1. Tải dự án của bạn
  2. Từ menu, chọn Dự án> Chỉnh sửa Cài đặt Dự án ...
  3. 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.
  4. Đóng cửa sổ đó.
  5. Từ menu, chọn Dự án> Chỉnh sửa Mục tiêu Hoạt động "YourTarget"
  6. 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.
  7. 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'.

      Điều hướng dự án           Cài đặt bản dựng

(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 .


3
Lưu ý nhanh cho những người mù như tôi nghĩ rằng mục Cài đặt dự án không tồn tại, đó là Dự án> Chỉnh sửa cài đặt dự án.
Lou Zell

1
'Bạn vẫn có thể tải xuống (từ Apple!) Và cài đặt phiên bản Xcode trước đó (ví dụ: 3.1.4: Leopard, Snow Leopard).' liên kết đó thực sự dành cho 3.1.3 sdk, không phải 3.1.4.
Remover

Mọi người: đây là wiki, vì vậy hãy tự mình sửa chữa mọi thứ.
Cầu Đất Sét

2
Lưu ý rằng cài đặt đích ghi đè cài đặt dự án; bạn không cần phải đặt nó ở cả hai nơi. Tôi khuyên bạn không nên đặt nó trong cài đặt mục tiêu của mình (& xóa nó nếu nó ở đó) và sau đó chỉ đặt nó trong cài đặt dự án của bạn. BTW: Nếu bạn đặt nó trong cài đặt dự án của mình, hãy đảm bảo rằng bạn đã chọn tất cả các cấu hình. (Hoặc sử dụng tab "Chung" và đặt nó qua cửa sổ bật lên "SDK cơ sở cho tất cả cấu hình").
geowar

1
Bạn có thể muốn cập nhật câu trả lời này để bao gồm SDK mới nhất mới.
Steven Fisher

8

Nếu bạn sửa cài đặt của mình mà vẫn thấy "Thiếu SDK cơ sở" và không thể tạo, hãy tải lại dự án của bạn. Tôi đã thoát Xcode, nhưng đóng và mở lại có thể cũng hoạt động.


tại sao đây? nó có vẻ kỳ lạ phải xcode gần gũi và tải lại lên chỉ b / c của một sự thay đổi thiết lập: O
RyBolt

Câu hỏi hay đấy RyBolt, nhưng nó là như vậy. Apple chắc hẳn đang lưu vào bộ nhớ đệm thứ gì đó ở đâu đó và quá trình tải lại sẽ giải phóng nó, nhưng đó chỉ là phỏng đoán.
John Stephen

5

Các liên kết do Clay Bridges cung cấp để tải xuống các phiên bản trước đó của Xcode và SDK hệ điều hành iPhone không hoạt động. Tuy nhiên, việc chỉnh sửa các liên kết này để thay thế phiên bản đầu tiên của 'iphone' bằng 'ios' vẫn hoạt động, ít nhất là đối với liên kết Snow Leopard (tải xuống ngay bây giờ).

Các liên kết chính xác, cùng với thông tin về cách cài đặt iOS SDK cũ hơn vào cài đặt Xcode mới hơn, đến từ mục blog này của Chris Fletcher: cách cài đặt iphone sdk 2.0.3.1 cho xcode 3.2 Rất được khuyến khích!


Thông tin tốt, Steve. Tôi nghĩ câu trả lời của tôi là một wiki cộng đồng. Bất kỳ cơ hội nào bạn có thể chỉnh sửa nó với thông tin chính xác. Cảm ơn.
Cầu đất sét

Tôi mới sử dụng StackOverflow và tôi nghĩ rằng tôi cần thêm 'điểm' trước khi trang web cho phép tôi chỉnh sửa các bài đăng của người khác. Giao diện người dùng không cung cấp cho tôi bất kỳ cách rõ ràng nào để nói 'chỉnh sửa bài đăng này' cho bài đăng của bạn. Lấy làm tiếc.
SteveCaine

3

Tôi cũng gặp phải vấn đề tương tự. Tôi cũng gặp sự cố khi sử dụng nhiều mục tiêu khi chuyển trở lại xcode đích trước đó sẽ quên thay đổi một số thứ, chẳng hạn như chuyển từ mục tiêu iOS sang mục tiêu MacOS.

option / alt nhấp vào menu thả xuống

tiết lộ một số tùy chọn bổ sung mà rất hữu ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.