[iphone] iPhone SDK 4와 함께 Xcode 3.2.3 설치, “Base SDK 누락”발생, 다른 SDK를 볼 수 없음

저는이 커뮤니티 위키를 만들어서 제가 여기에서 본 다른 Q / A를 묶었습니다. 여기에 있다면 iPhone SDK 4 ( download link , reg reqd) 와 함께 Xcode 3.2.3의 최종 버전을 설치 한 후 다음 문제 중 하나 또는 둘 모두가 발생 했을 것입니다 .

  • 이전에 작업 한 Xcode iPhone 프로젝트에서 “Base SDK Missing”이 어딘가에 나타납니다. 이 같은:

    루-로!

  • 관련이 있지만보다 일반적인 관찰에서 이전에 사용 가능한 장치 또는 시뮬레이터 SDK 선택 항목 (예 : 3.0, 3.1, 3.1.3, …)은 이전에 사용했던 곳에서 사용할 수 없습니다.



답변

개요

이 문제가 발생하는 이유와 특정 “Base SDK Missing”문제를 해결하는 방법을 설명하겠습니다. 이 모든 것을 읽는 것이 좋지만 맨 아래로 건너 뛸 수 있습니다. 나는 또한 이 문제에 대한 John Muchow의 훌륭한 견해 를 추천 합니다.

특별히 관련된 문제가있는 Xcode 3.2.4 업그레이드에 관심이있는 경우 여기에서 회의 를 할 수 있습니다 .

모두를 지배하는 하나의 SDK

거래는 다음과 같습니다. 4.0은 이제 새롭거나 업데이트 된 iPhone 전용 앱을 제출할 수있는 유일한 SDK 버전입니다. 이는 Apple의 iOS 4 준비 체크리스트 (reg reqd) 에서 직접 가져온 것입니다 .

모든 새로운 애플리케이션과 기존 애플리케이션에 대한 업데이트는 iPhone SDK 4로 빌드해야합니다. App Store는 더 이상 iOS 2.x를 대상으로하는 애플리케이션을 지원하지 않습니다.

아마도-여기에서 추측하고 있습니다-iPad 전용 및 범용 앱은 3.2 SDK를 사용해야합니다. 4.0 및 3.2 SDK를위한 유일한 선택 이유입니다.

이것이 이전에 매핑 된 SDK가 더 이상 사용되지 않는 gones-ville 이기 때문에 이제 프로젝트가 중단 된 이유이기도합니다 .

(하지만) 3은 매직 넘버

편하게 하다. iPhone OS 3.0을 실행하는 기기를 계속 타겟팅 할 수 있습니다 (더 낮지는 않음). 컴파일에 사용 하는 SDK 는 프로그래밍하거나 지원할 수있는 iOS 버전을 아래로 제한하지 않습니다 . 프로젝트 등에서 패치를 완료하면 (다음 섹션 참조) “iPhone OS Deployment Target”을 더 낮은 iOS 버전으로 설정할 수 있습니다. 이를 수행하는 방법에 대한 빠른 샷은 cf. 다음 섹션의 7 단계.

이제 까다로운 지형에 진입하고 있습니다. 일반적인 Xcode 3.2.3 컴파일러는 더 이상 3.0 전용 호출에 대한 준수를 강제하지 않으며 이에 대한 시뮬레이터도 없습니다. 4.0 기능을 지원하려면 3.0 장치에서 충돌을 방지하기 위해 몇 가지 조건부 코드를 수행해야합니다. 장난.

여전히 Apple에서 다운로드하여 이전 Xcode 버전 또는 SDK를 설치할 수 있습니다 ( 여기 참조 ). 예, 여러 Xcode 버전을 다른 디렉토리에 설치할 수 있습니다. 즉, / Developer에 하나의 버전 만 넣을 수 있습니다. 이전 Xcode를 사용하여 3.x SDK와 비교하여 앱의 컴플라이언스를 테스트하고 어려운 작업을 멋진 컴파일러 및 시뮬레이터로 이동할 수 있습니다. 그러나 더 이상 이전 SDK의 제품을 사용하여 앱 스토어에 제출할 수 없습니다.

FWIW, 배송 전에이 확인 만 할 계획입니다.

내 상태는 어떤 상태입니까

Matt Gallagher는 “조건부 iOS3, iOS3.2 및 iOS4 코드에 대한 팁과 요령” 이라는 버전 조건부 코드에 대한 Cocoa with Love 게시물을 보유하고 있습니다. 4.0 기능을 조건부로 사용할 계획이라면이 기능을 확인하는 것이 좋습니다.

“기본 SDK 누락”수정

  1. 프로젝트로드
  2. 메뉴에서 프로젝트> 프로젝트 설정 편집 …을 선택하십시오.
  3. Architecture> Base SDK에서 사용 가능한 장치 옵션 중 하나를 선택합니다 : iPhone 3.2 또는 iPhone 4.0. iPhone 만 사용하는 경우 4.0을 선택하는 것이 좋습니다.
  4. 그 창을 닫으십시오.
  5. 메뉴에서 프로젝트> 활성 대상 “YourTarget”편집을 선택하십시오.
  6. Architecture> Base SDK에서 사용 가능한 장치 또는 시뮬레이터 옵션 중 하나 (iPhone 3.2 또는 iPhone 4.0)를 선택합니다.
  7. 이전 iOS 버전을 대상으로 지정하려면 동일한 창의 배포> iPhone OS 배포 대상에서 지원할 가장 낮은 버전을 선택합니다. 앱 스토어를 통한 2.x 버전 지원은 더 이상 사용되지 않습니다. 위의 “준비 체크리스트”인용문을 참조하십시오.

Xcode 4 이상의 기본 SDK 위치

위의 단계를 따르되 2 단계에서 다음을 클릭합니다.

  • 네비게이터 사이드 바 왼쪽에있는 폴더 아이콘을 사용하여 프로젝트 네비게이터를 선택합니다.
  • 해당보기의 맨 위에있는 프로젝트를 선택하십시오.
  • 프로젝트 구성이 기본 편집기 패널에 나타납니다. 상단의 “Build Settings”를 선택하면 아래에 ‘Architecture’섹션이 있습니다.

      프로젝트 네비게이터           빌드 설정

(이 답변은 Sherman Lo답변을 약간 수정 한 버전입니다. )

추가

이 주제에 대한 더 자세한 정보는이 질문 에 대한 첫 번째 답변에서도 찾을 수 있습니다 . 여기에 유용한 정보도 있습니다 .


답변

설정을 수정했는데 여전히 “Base SDK Missing”이 표시되고 빌드 할 수없는 경우 프로젝트를 다시로드합니다. Xcode를 종료했지만 닫기 및 다시 열기도 작동 할 것입니다.


답변

이전 버전의 Xcode 및 iPhone OS SDK를 다운로드하기 위해 Clay Bridges에서 제공 한 링크가 작동하지 않습니다. 그러나 이러한 링크를 편집하여 ‘iphone’의 첫 번째 인스턴스를 ‘ios’로 바꾸는 것은 적어도 Snow Leopard 링크 (지금 다운로드 중)에서는 작동합니다.

올바른 링크와 최신 Xcode 설치에 이전 iOS SDK를 설치하는 방법에 대한 정보는 Chris Fletcher의이 블로그 항목에서 나왔습니다. xcode 3.2 용 iphone sdk 2.0.3.1 설치 방법 적극 권장합니다!


답변

나도 같은 문제가 있었다. 또한 여러 대상을 사용하여 이전 대상 xcode로 다시 전환하면 iOS 대상에서 MacOS 대상으로 전환하는 것과 같은 몇 가지 사항을 변경하는 것을 잊을 때 문제가있었습니다.

옵션 / alt 드롭 다운 클릭

매우 유용한 몇 가지 추가 옵션을 공개했습니다.


답변