2012-10-18 3 views
1

질문에 대한 답변이므로 가능한 답을 알려주십시오.iOS 5.1 및 6 모두 iPhone 3GS 이상에서 iOS 앱을 작동시키는 방법은 무엇입니까?

최근에 Xcode를 4.5로 업데이트했으며 iOS SDK 5.1에 액세스 할 수 없었습니다. 몇 가지 SO 게시물 (이전 Xcode 설치 프로그램의 이미지 사용)에 설명 된 방법을 사용하여 iOS SDK 5.1을 다시 추가했습니다.

내 앱으로 지원하고 싶은 환경은 iPhone 3GS, iPhone 4, iPhone 4S 및 iPhone 5입니다. 분명히 iOS SDK 5.1 및 6.0이 있습니다. 이러한 요구 사항에 대해 권장되는 빌드 설정은 무엇입니까?

바로 지금은 Deployment Target을 5.1, Base SDK을 6.0, 아키텍처를 armv7 및 armv7s로 설정했습니다. 이 올바른지?

이제 iOS SDK 5.1이 armv7 (iPhone 5 아키텍처) 용으로 컴파일되지 않았다고 생각합니다. iOS 6.0 용으로 컴파일 된 코드가 iPhone <에서도 작동하는지 어떻게 확인합니까? 현재 을 확인하지 않을 때 iOS 5.1 SDK를 가리키는 링커 오류 ld: file is universal (4 slices) but does not contain a(n) armv7s slice이 발생합니다. 앱 스토어에 출시 할 때 앱이 iOS SDK 5.1에서 계속 실행되도록하려면 어떻게해야합니까? iOS 5.1과 함께 armv7 용으로 컴파일되는 것으로 보입니다. 작동하지 않습니다.

도움을 주시면 대단히 감사하겠습니다.

답변

0

SDK 5.1을 전혀 다운로드 할 필요가 없습니다. SDK 6.0에는 SDK 5.1에 포함 된 모든 라이브러리와 헤더와 iOS6의 추가 라이브러리 및 헤더가 포함됩니다.

SDK 버전, 앱이 호환되는 iOS 버전 및 앱을 빌드하는 아키텍처의 차이점을 이해해야합니다.

6.0으로 컴파일한다고해서 앱이 iOS6에서만 작동한다는 것은 아닙니다. 앱이 IOS_DEPLOYMENT_TARGET에 설정된 버전에서 SDK에 해당하는 버전, 즉 6.0으로 iOS에서 실행될 수 있음을 의미합니다.

그래서 당신은 당신의 응용 프로그램은 아이폰 OS 5.1과 호환되도록하려면 이상, 당신은 여전히 ​​은 자료 SDK 6.0을 사용하여 컴파일하고 모든 SDK 5.1 필요하지 않습니다 : 그냥 Deployment Target 5.1과로 설정해야 Base SDK 6.0에 (당신이 질문에 말했듯이), 그래서 거기에 당신을 위해 SDK 5.1 필요합니다, 어쨌든 iOS6, iPhone5 및 armv7에 대한 컴파일에 쓸모없는 (필요한 헤더, 라이브러리 및 아키텍처가 포함되어 있지 않습니다. SDK 6.0이 출시되어 필요한 이유).

최신 버전의 Xcode와 같은 기존 SDK (예 : 별도로 다운로드)를 사용하면 문제가 발생할 수 있으며 더 중요한 것은 SDK 버전보다 높은 버전의 iOS 용으로 앱을 컴파일 할 수 없습니다 귀하의 경우 5.1). 따라서 으로 SDK 6.0을 사용합니다. iOS 5.1을 시작하는 앱과 호환되도록하려는 경우에도 마찬가지입니다.당신은 (자료 SDK) 사용하는 SDK 버전의 차이점에 대한 자세한 내용은


는 배포 대상 및 앱 지원되는 아이폰 OS 버전 및 아키텍처, 애플 문서SDK Compatibility Guide을 읽어 그 모든 것을 아주 자세하게 설명합니다.

0

Deployment Target을 5.1로 설정하면 문제가 해결되지 않으며 ARMv7 및 ARMv7에서는 아키텍처를 그대로 둘 수 있습니다.

iOS 6 SDK를 사용하면 5.1 SDK를 가리 키지 않을 것입니다. iOS 6 SDK 전용 메소드 나 클래스를 직접 호출하지 않도록하십시오.

배포 대상이 여기에 핵심입니다.이 앱을 실행하는 데 필요한 최소 iOS 버전을 정의하므로 5.1로 설정하면 앱이 5.1 이상에서 실행됩니다.