Xcode 5에 iOS 6 SDK를 설치할 수 있습니까?


250

Xcode 5에는 iPhone 6.1 시뮬레이터를 다운로드 할 수있는 환경 설정 창이 있지만 iOS 6 SDK를 다운로드 할 수있는 곳을 찾을 수 없으므로 Xcode 5로 개발할 때 활성 SDK를 iOS 6으로 설정할 수 없습니다 Xcode 5에서 iOS 6 SDK를 설치할 수있는 해결 방법이 있습니까?

편집하다:

Xcode 5가 일반적으로 사용 가능하고 이전 버전의 SDK를 다운로드 할 수 있으므로 해결 방법이 더 이상 필요하지 않습니다.

여기에 이미지 설명을 입력하십시오


41
Xcode 5의 많은 개선 사항을 활용하면서 오늘날의 앱 스토어 용 앱을 계속 만들 수 있습니다.
Tony

61
이봐, 매디, "어쨌든 iOS 7 수용"에 대한 요점은 완전히 GA 릴리스와 관련이 없습니다. 플랫 디자인 및 다시 디자인 된 iOS7 UI 구성 요소와 일치하도록 앱의 전체 디자인 언어 및 UX를 다시 디자인하려는 결정과 노력은 작지 않으며 비즈니스 및 타이밍 관점에서 쉽게 얻을 수 없습니다. SDK 6.1을 기반으로 빌드하면 iOS7에서 iOS 6 이전의 UI 디자인 언어 (이전의 지원을 위해)를 사용하게됩니다. 따라서 우리는 Xcode 5에서 6.1 SDK에 대해 개발하기를 원할 것입니다.
Marchy

2
hmmm은 단일 코드 더미 대신 SDK가 IDE에서 분리 될 것으로 예상하기 때문일까요?
phreakhead

1
현재 IOS7 UI 변경 사항을 수용 할 준비가되지 않은 클라이언트와 작업하고 있지만 XCode 5의 핵심 데이터 마이그레이션 개선의 이점을 누릴 수 있습니다. 따라서이 경우에도 제가 원하는 것입니다.
드로이드 크리스

SDK 6.1을 포함하지 않으면 Xcode가 적어도 Xcode를 매끄럽게 통합 할 것이라고 생각할 수 있습니다. 그러나이 문제가 있습니다.
JohnK

답변:


203

편집 : 2014 년 2 월 1 일부터 Apple은 더 이상 iOS7 이전의 앱을 App Store에 제출할 수 없습니다. 따라서이 기술은 여전히 ​​작동하지만 대부분의 독자에게는 유용하지 않습니다.


예, 괜찮습니다. 나는 여전히 하나의 프로젝트에 대해 iOS 4.3으로 빌드하고 있습니다 (업데이트 된 지 얼마되지 않았지만 iOS 6이 나온 후에도 여전히 받아 들였습니다). 현재 Xcode 5로 10.5 앱을 빌드합니다.

"기본 SDK"로 사용할 수 있도록 Xcode를 이전 SDK를 가리키는 방법을 참조하십시오 . 설정 방법에 대한 자세한 내용은 내 fix-xcode 스크립트를 사용하여 업그레이드 할 때마다 모든 것을 링크 할 수 있습니다 .

유일한 트릭은 이전 SDK를 얻는 것입니다. 그것들이 없다면, 일반적으로 이전 버전의 Xcode를 다운로드해야합니다 (여전히 developer.apple.com에서 구할 수 있습니다) ) 하고 설치 프로그램 패키지를 열고 필요한 SDK를 찾아야합니다.

SDK는 다음의 설치 프로그램 패키지에서 찾을 수 있습니다.

Xcode.app/ 콘텐츠 / 개발자 / 플랫폼 /


iOS 6 SDK로 빌드되도록 보관할 때 iOS 7 SDK를 제거해야합니까?
ohayon

6
안녕하세요. 이것은 가깝지만 나에게는 그렇지 않습니다. 버튼은 iOS 6처럼 보이지만 UINavigationController를 사용할 때 뷰 컨트롤러 내용이 여전히 탐색 막대 뒤에 올라갑니다. iOS 6 동작을 얻는 방법에 대한 생각이 있습니까?
matt bezark

2
아니; 당신은 장치에서만 이것을 볼 수 있습니다. iOS 7 시뮬레이터에는 iOS 6 호환 모드가 없습니다. 시뮬레이터에서 어떻게 보이는지 보려면 iOS 6 시뮬레이터에서 테스트하십시오.
Rob Napier

1
Xcode 5 및 iOS 6 SDK로 빌드 된 앱을 App Store에 제출할 수 있습니까?
hujunfeng

1
iPad 1이 여전히 지원되는 한 항상 Apple이 5.X iOS를 허용한다고 가정 할 수 있습니다. 업그레이드 할 수 없습니다.
ahwulf

60

또한 xcode 5로 업데이트 할 때 동일한 sdk를 제거했을 때 동일한 문제가 발생했습니다. 그러나 다른 컴퓨터에서 이전 SDK의 사본을 가져 와서 다음 링크에서 다운로드 할 수 있습니다.

http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com 테스트 계정 test@yopmail.com/test)

두 가지 방법으로 작업 할 수 있습니다.

1)이 폴더의 압축을 풀고 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDK에 붙여넣고 xcode를 다시 시작하십시오.

그러나 xcode를 업데이트하면 Xcode로 다시 제거 될 수 있습니다.

2) 다른 방법은 원하는 위치에 압축을 풀고 붙여 넣은 다음 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDK로 이동하여 심볼릭 링크를 생성하여 SDK가 동일한 경우에도 Xcode를 업데이트합니다.

빌드 설정> 아키텍처> 표준 (64 아님)으로 변경 한 또 다른 변경 사항은 모든 배포 대상 버전을 나열

배포 대상 만 변경하려는 경우 zip을 다운로드 할 필요가 없습니다.

다음은 몇 가지 스크린 샷입니다. 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


2
이 ios6.1 SDK를 어떻게 그리고 어디서 다운로드 했습니까? 내 Xcode 5에서 실행할 iOS 5 SDK를 찾고 있습니다. 업로드하거나 직접 다운로드 할 수있는 곳을 가리킬 수 있습니까? 감사합니다
Sam B

사실, 나는 오래된 시스템도 가지고 있습니다. 이전 xcode에서 가져 왔습니다. ios sdk 5에 대해 시도한 것과 동일하지만별로 필요하지는 않아서 가져 오지 않았습니다. 또한이 답변이 좋으면 + 또는-의 관점에서 귀하의 의견을 소중하게 생각합니다. 감사합니다.
AvtarSingh Suchariya

1
Hey Avtar, ios6 zip을 다운로드하여 나열된 위치 경로에서 압축을 풀고 xcode 5를 완전히 닫은 다음 다시 시작했지만 여전히 드롭 다운 옵션의 배치 가능한 대상으로 7.0 만 보입니다. 누락 된 단계가 있다고 가정하고 더 많은 단계가 있습니까?
Sam B

나도 마찬가지입니다. 질문 하나, xcode 앱 자체에 추가했거나 심볼릭 링크를 만들었습니까?
AvtarSingh Suchariya

앱 디렉토리 자체에 직접.
Sam B

34

예, 오늘 문제를 해결했습니다.

  1. 귀하 또는 귀하의 친구의 이전 Xcode 디렉토리에서 iPhoneOS6.1.sdk와 같은 SDK 파일을 찾으십시오.
  2. Xcode 5 디렉토리 (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs)에 복사하여 넣으십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 아래와 같이 SDK를 선택할 수 있습니다.

여기에 이미지 설명을 입력하십시오

이것이 도움이되기를 바랍니다.


2
나는 내 앱 변경의 GUI를 변경했지만 iOS 7 GUI처럼 보입니다. 앱을 실행하기 위해 iPhone Retina (4 인치 64 비트) 시뮬레이터를 선택했습니다. 이 작업을 수행 한 후 다른 항목이 없습니다.
python

20

이전 SDK를 찾아서 다운로드하십시오. 이전 SDK는 여기에서 찾을 수 있습니다 .

xcode.app 디렉토리를 Xcode_4.6.3.app로 복사했습니다.

이제 두 xcode 버전 모두에서 테스트하고 디버깅 할 수 있습니다. 해당 폴더에서 폴더를 실행하거나 바탕 화면에 바로 가기를 만들어야합니다. 명령 행에서 빌드 할 때 iPhoneOS6.1대신 매개 변수를 제공하십시오.iPhoneOS7.0

이것은 Xcode5 및 iOS에서 나에게 효과적이었습니다.

Xcode5의 SDK 디렉토리로 이동하십시오. 일반적으로 다음 위치에 있습니다.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

다음과 같이 이전 SDK에 심볼릭 링크를 추가하십시오.

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

또는 명령 줄의 어느 곳에서나 정확하게

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk

이 옵션을 사용하여 앱을 테스트 할 수 있지만 2014 년 2 월 이후에는 이전 iOS 7 SDK로 빌드 된 모든 앱이 앱 스토어에서 허용되지 않습니다!
karim

11

이전 SDK를 다운로드하여 설치할 수 있습니다

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

폴더. 변경 사항이 적용되도록 로그 아웃 + 로그인하면 새 XCode에 이전 SDK가 표시됩니다.


(이전 답변에서 다운로드 링크를 사용하여)이 작업을 수행했으며 iOS 6.1 SDK 선택은 빌드 설정> 아키텍처> 기본 SDK 아래의 xcode 5에 표시됩니다. 그러나 iOS 7 시뮬레이터 (또는 iOS 7 장치)에서 빌드하고 실행할 때 여전히 iOS 7 UIKit 버튼 (iOS 6 버전이 아님)을 사용하고 있습니다. 왜 누군가에 대해 어떤 제안이 있으면 감사하겠습니다 ....
빌 패터슨

TimeMachine을 설치 한 경우 위의 경로를 열고 (터미널 유형 : "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/"열기) iOS6.1 SDK를 복원 할 수 있습니다. .
avance

11

추가하기 위해 Xcode 5 자체로 이전 버전의 시뮬레이터를 실제로 다운로드 할 수 있습니다-환경 설정으로 이동하면 다운로드에서 찾을 수 있습니다.

여기에 이미지 설명을 입력하십시오


이것은 xcode 5가 베타 버전에서 나 왔으며 이제는 일반적인 릴리스이기 때문에 발생했을 것입니다. 알아두면 좋은 점 감사합니다 Smikey
Tony

5
@Manni 이것은 이전 API에 대해 컴파일하는 것과 다릅니다. iOS 6 용 새 API를 사용하여 구축하고 있습니다.
oligofren

이 옵션은 이전 대상 플랫폼을 설정 한 경우에도 Xcode 6에 기본적으로 나타나지 않습니다.
GilesDMiddleton

10
  • Apple Dev Center에서 Xcode 4.6.x를 다운로드 하십시오 (https://developer.apple.com/downloads/index.action).
  • Applications 폴더 내에 Xcode4라는 폴더를 만들고 다운로드 한 dmg를 끌어다 놓으십시오.
  • 터미널 창을 엽니 다

    $sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • 시스템 폴더 안에 있으므로 비밀번호를 입력하라는 메시지가 표시됩니다

  • Xcode 5를 열면 두 SDK가 모두 표시됩니다.

10

가장 쉬운 해결책은 다음과 같습니다.

  1. 예를 들어, 이전 버전의 xcode에서 "iPhoneOS6.1 sdk"와 같은 이전 SDK를 찾으십시오. 그렇지 않은 경우 Apple Developer 서버에서 다음 주소로 다운 래드 할 수 있습니다 . https://developer.apple.com/downloads/index.action?name=Xcode xcode.dmg를 열면 열 수 있습니다. Xcode.app (마우스 오른쪽 버튼을 클릭하고 "내용 표시")하고 Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS6.1 sdk로 이동하십시오. 여기에 이미지 설명을 입력하십시오
  2. 단순 폴더 iPhoneOS6.X SDK를 복사하여 xcode.app에 붙여 넣습니다.
    • Applications 폴더에서 xcode.app를 마우스 오른쪽 버튼으로 클릭하십시오.
    • Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs /로 이동하십시오
    • 여기에 붙여 넣기 만하면됩니다.

여기에 이미지 설명을 입력하십시오

  1. xcode 앱을 닫았다가 다시여십시오.

시뮬레이터에서 iOS 6의 앱을 테스트하려면 :-활성 sheme에서 iOS 6.0을 선택하기 만하면됩니다. 여기에 이미지 설명을 입력하십시오

iOS 6에서 앱을 빌드하려면 앱 디자인이 iOS 7이 설치된 iPhone의 이전 디자인이됩니다.-Targets-Base SDK에서 iOS6.1 선택

여기에 이미지 설명을 입력하십시오

참고 사항 : Targets에서 기본 SDK를 변경하면 더 이상 시뮬레이터에서 빌드 할 때 iOS 7.0을 사용할 수 없습니다!


9

이것을 할 수있다 있지만 실제로는 필요하지는 않습니다.

이것을하는 방법

Jason Lee가 답을 얻었습니다. xCode를 설치할 때 이전 설치를 바꾸는 대신 유지하는 것이 좋습니다. 그래서 나는 이것을 설치 폴더에 가지고 있습니다.

여기에 이미지 설명을 입력하십시오

따라서 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs다른 SDK를 포함합니다. (Xcode.app를 올바른 숫자로 교체하십시오) 이전 SDK를 복사하십시오.

/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

복사 한 폴더는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

이제 xCode를 다시 시작하면 이전 버전의 SDK를 기본 SDK로 설정할 수 있습니다.

왜 필요하지 않은가

Apple Documentaion 참조

Xcode 프로젝트에 특정 SDK를 사용하려면 프로젝트 빌드 설정에서 두 가지를 선택하십시오.

  1. 배포 대상 선택 .

    소프트웨어가 실행될 수있는 가장 초기 OS 버전을 식별합니다.

  2. 기본 SDK를 선택하십시오

    소프트웨어는 기본 SDK에 해당하는 기능을 포함하여 OS 버전에서 사용 가능한 기능을 사용할 수 있습니다. 기본적으로 Xcode는 이것을 Xcode가 지원하는 최신 OS로 설정합니다.

규칙은 기본 SDK로 최신 사용이며 배포 대상을 실행할 최소 버전 앱으로 설정

예를 들어 iOS 7을 기본 SDK로 사용하고 iOS 6을 배포 대상으로 설정할 수 있습니다. iOS 6 시뮬레이터에서 실행하여 iOS 6에서 작동하는 방식을 테스트하십시오. 시뮬레이터 목록에없는 경우 시뮬레이터를 설치하십시오.

여기에 이미지 설명을 입력하십시오

추가 사항 iOS 6까지의 기능을 무조건 사용할 수 있으며 조건부로 이전 버전을 지원하면서 업데이트 된 새로운 장치에 대해 iOS 7의 새로운 기능을 지원할 수 있습니다.

이것은 약하게 연결된 클래스 , 약하게 연결된 메서드 , 함수기호를 사용하여 수행 할 수 있습니다.

https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3

약한 연결

Xcode에서 배치 대상 (최소 필수 버전)을 iOS6으로 설정하고 대상 SDK (최대 허용 버전)를 iOS7로 설정했다고 가정하십시오. 컴파일하는 동안 컴파일러는 iOS7에 도입 된 모든 인터페이스를 약하게 연결하고 이전 인터페이스는 강력하게 연결합니다. 이를 통해 응용 프로그램은 iOS6에서 계속 실행되지만 새로운 기능이 제공 될 때 여전히 활용됩니다.


4

여기에있는 다른 답변도 정확하지만 다음 단계가 가장 쉬운 것으로 나타났습니다.

"이전 버전의 Xcode를 찾으십니까?"라는 개발자 센터 링크에서 Xcode 4.6.3을 다운로드하십시오. (현재는 여기 참조 ) dmg를 마운트하십시오.

그런 다음 터미널에서 SDK 파일을 다음으로 복사하십시오.

cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

마지막으로 Xcode를 다시 시작하면 완료됩니다.


3

내 앱은 프로젝트에서 설정 한 원래 iOS 배포 대상 (제 경우 5.1)으로 계속 빌드 할 수 있기 때문에 Xcode 5로 원활하게 전환되었습니다. 새로운 SDK가 극복 할 수없는 문제를 일으키지 않는다면 그것을 사용하여 빌드하지 않겠습니까? 확실히 후드 아래에 많은 개선이 있습니다.

예를 들어, Xcode 4.6.3 대신 Xcode 5를 사용하는 것이 좋습니다. 왜? Xcode 5에서 텍스트 / 코드 영역의 UI 스크롤이 더 이상 전체 CPU 스레드를 씹지 않기 때문에 배터리 수명이 훨씬 길어집니다.


하지 말아야 할 이유-Xcode 5는 현재 매우 불안정합니다. 나를 위해 매시간 충돌합니다. 또한 일부 견해에서 이상한 위치 문제와 색상 문제 (수정할 작업이
많지는 않지만

2

다른 답변에서 설명한대로 6.1 SDK를 Xcode 5에 연결하는 것이 한 단계입니다. 그러나 이것은 여전히 ​​iOS 7에서 실행되는 새로운 UI 요소, 뷰 컨트롤러가 풀 사이즈로 만들어진 문제를 해결하지 못합니다.

이 답변에 설명 된대로 iOS 7에서 UI를 레거시 모드로 전환해야합니다.

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];

주의 : 이것은 문서화되지 않은 키이며 App Store 빌드에는 권장되지 않습니다!

또한 장치에서 테스트하는 동안 내 경험에 따르면 앱 실행 초기에 코드를 상당히 일찍 실행하더라도 앱을 두 번째로 시작할 때만 작동한다는 것을 알았습니다 +[AppDelegate initialize]. 또한 Xcode 4.6을 사용하여 빌드 된 버전과 미묘한 차이점이 있습니다. 예를 들어 투명한 탐색 막대는 다르게 동작합니다 (뷰를 전체 크기로 사용).

그러나 Mavericks에서 Xcode 4.6.3이 충돌하기 때문에 (적어도 rdar : // 15318883 참조 ) 이것은 디버깅을 위해 Xcode 5를 계속 사용하는 솔루션입니다.


1

다른 답변에 설명 된대로 XCode 4를 다운로드하고 iOS 6.1 SDK를 XCode 5로 가져 왔습니다. 그런 다음 iOS 6.1 Simulator도 설치했습니다 (환경 설정에서 사용 가능). 또한 프로젝트 설정에서 Base SDK를 iOS 6.1로 전환했습니다.

이 모든 조작 후에 6.1 기본 SDK가있는 프로젝트는 iOS 7 Simulator에서 호환 모드로 실행됩니다.


1

2 월 1 일부터 Apple은 iOS6 이하 전용 앱을 거부합니다. 다음은 Apple 의 공식 커뮤니케이션 입니다. iOS7 구축을 시작하는 것이 좋습니다.

내 진술을 명확히하려면 : iOS6 이하를 빌드하면 Apple에서 앱을 거부합니다. iOS7 용으로 빌드하고 모든 것을 낮추면 괜찮습니다.

  1. xcode5를 사용해야합니다
  2. 최소한 iOS7에 배포해야합니다.

애플 이메일의 내용은 나에게 분명하다

"앱이 iOS 7의 혁신적인 기술과 원활하게 작동하는지 확인하십시오. 2 월 1 일부터 App Store에 제출 된 새로운 앱 및 앱 업데이트는 Xcode 5 및 iOS 7 SDK로 구축해야합니다."


예. 그러나 iOS 6 SDK는 iOS 7에서도 잘 작동합니다. 일부 앱은 실제로 전환하기가 어렵습니다.
Aniruddh Joshi

당신이 틀렸다고 믿습니다. 애플은 (a) 최신 Xcode 5에 의해 빌드되고 (b) iOS 7에 최적화 되어 있어야합니다. 링크 에 대한 Rob Napier의 답변에 대한 나의 의견을 참조하십시오 .
Basil Bourque

우리 중 일부는 Enterprise 배포를 위해 개발하고 이전 SDK (및 장치)를 대상으로해야합니다. 엔터프라이즈 앱은 Apple Review 프로세스 및 / 또는 App Store를 거치지 않으며이 토론은 매우 유용하고 관련성이 있으며 앞으로도 계속 관련 될 것입니다. 나는 당신의 관점을 이해하지만 그것이 유일한 것은 아닙니다.
Kevin OMara

당신은 완전히 맞습니다 !!! 엔터프라이즈 배포에 대해서는 생각하지 않았습니다. 그러나 ios7 최적화 및 검토 프로세스에 신경 쓰지 않고 배포 대상을 설정하기 만하면 새로운 Xcode를 사용하여 iOS6에 계속 배포 할 수 있습니다.
Andrea

0

현재 Xcode 4.6.3 및 5.0이 설치되어 있습니다. 다음 bash 스크립트를 사용하여 5.0을 이전 버전의 SDK에 연결했습니다.

platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
    for platform in `ls $platforms_path`
    do
        sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
    done;
fi;

.app 경로를 제공하면됩니다.

./xcode.sh /Applications/Xcode-463.app

5.1로 업그레이드하면 7.0.x SDK가 제거되고 7.1 SDK로 교체되었습니다. Xcode5-DP67.0.x를 복구 할 수 있는 이전 설치 버전이 있지만 최신 Xcode 버전으로 업그레이드하거나 설치하기 전에 SDK 디렉토리를 백업하거나 앱의 이름을 완전히 바꾸는 것이 좋습니다.
Wayne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.