xcode에서 Base SDK, iOS 배포 대상, 대상 및 프로젝트의 의미는 무엇입니까


162

기본 SDK를 7로 설정했다고하면 무슨 뜻입니까? 앱이 iOS 7에서 실행된다는 의미 일 수 있지만, 이것이 iOS 배포 대상입니다.

또한 왜 프로젝트와 대상 모두에서 3 가지 값을 지정해야합니까? 말이되지 않습니다. 왜 같은 것을 두 번 지정해야합니까?


또 다른 새로운 질문에 대한 간결한 답변이 있습니다. stackoverflow.com/a/41278576/498949
Chris Rae

답변:


80

기본 SDK는 앱을 빌드하는 것입니다 (예 : 포함 및 라이브러리 파일 및 프레임 워크). 말하자면 기본 sdk> = 배포 대상을 제외하고 배포 대상에 영향을 미치지 않습니다.

각 프로젝트는 여러 대상을 가질 수 있고 모든 대상에 대해 동일한 설정을 원하지 않을 수 있으므로 빌드 레벨을 2 레벨로 지정하십시오. 프로젝트 수준 설정은 기본 설정보다 우선하고 대상 수준 설정은 프로젝트 수준 설정보다 우선합니다.

예를 들어 OSX와 iOS 대상이 모두있는 프로젝트가 있고 일부는 ARC이고 일부는 MRR입니다. Xcode에서 허용하는 세분성 수준으로 빌드 설정을 지정할 수없는 경우 각각에 대해 서로 다른 프로젝트가 있어야합니다.


197

에서 아이폰 OS 7 TechTalk , 세션의 아키텍처 현대 앱은, 제 2 부, 그들은 명확하게 설명

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

잘 읽어 보세요 안녕! # 사용 가능합니다!

따라서 최신 앱은 iOS 9를 대상 SDK로, iOS 7을 배포 대상으로 사용할 수 있습니다. 이는 iOS 7, iOS 8 및 iOS 9에서 실행할 수 있으며 실제로 iOS 9에서 실행될 때 모든 iOS 9 호출을 사용할 수 있음을 의미합니다.

내 게시물 SDK 및 배포 대상 에서 더 많은 내용을 읽을 수 있습니다


20
좋은 참조 .. 그리고이 부분은이 50 분 비디오에서 약 25:17에 묻혀 있습니다.
다니엘

2
좋은! 그러나 Base SDK = 7.0을 설정하고 iOS 8.0에 설치하려고하면 어떻게됩니까? 최신 Base SDK를 항상 지원하려면 마지막 XCode를 다운로드해야합니까?
GoRoS

2
@chichilatte 아니오, 필요하지 않습니다. 이 앱은 여전히 ​​iOS 12, iOS 13을 지원하지만 iOS 12, iOS 13의 새로운 기능은 제공하지 않습니다. iOS 12의 새로운 기능을 사용하려면 iOS 12 SDK에 대해 컴파일하고 사용해야합니다. iOS 12의 API.
onmyway133

3
고마워요. 위의 @ Kunal-Balani의 의견이 잘못되었다고 생각합니다.
chichilatte

2
@ Kunal-Balani, 다른 의견자는 정확합니다. 당신은 당신의 응용 프로그램을 다시 컴파일하지 않아도 OS의 최신 버전은 당신이에 내장 된 것보다 함께 온다면 그들은 무엇을 현재 응용 프로그램 사용에 대한 제거 지원을하지 않는 한 . 새로운 OS가 갑자기 이전 SDK로 빌드 된 앱이 작동을 멈추는 것은 아닙니다. 이 경우 아무도 업그레이드하지 않을 것입니다. 왜냐하면 최신 버전이 나올 때까지 현재 모든 앱이 작동을 멈출 것이라는 의미이기 때문입니다.
Mark A. Donohoe 2019

67

기본 SDK는 연결하는 SDK입니다. 배포 대상은 응용 프로그램을 실행하는 데 필요한 최소 iOS 버전입니다. iOS 6에서 실행되는 SDK 7로 응용 프로그램을 빌드 할 수 있지만 iOS 6에서 사용할 수없는 기능이나 방법을 사용하지 않도록주의해야합니다. 그렇게하면 응용 프로그램이 iOS 6에서 바로 중단됩니다. 이 기능이 사용됩니다.

자세한 내용은 사과 설명서를 참조하십시오. https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.