[iphone] Xcode 4.2 및 iOS 5 SDK를 사용할 때 이전 iOS 버전을 타겟팅 할 수 있습니까?

최근에 iOS 5 SDK 패키지가 포함 된 Xcode 4.2를 다운로드했고, 디버깅을 위해 iOS 4.2.1에서 iPhone 3G를 사용할 수 없다는 것을 즉시 알았습니다. iOS 5가 설치된 iPhone 4에서만 디버깅하고 테스트 할 수 있습니다.

5.0 미만의 iOS를 실행하는 모든 장치의 경우 Xcode는 “iPhone3GS에서 실행 완료”라고 말하고 실행하지 않습니다. 3.0 이상의 앱에서 기능을 사용하지 않고 모든 버전 3.0 이상을 대상으로 할 수 있기 때문에 배포 대상을 3.0으로 설정했습니다. 모든 프로비저닝 프로파일이 설치되어 있고 최신 상태입니다.

xcode를 종료하고 다시 시작했으며 빌드를 여러 번 정리했습니다. 아키텍처 빌드 설정에서 armv6을 추가하려고 시도했지만 iOS 4.2.1이 설치된 이전 휴대폰에서 내 앱을 빌드하고 실행할 수있는 방법은 없습니다.

제 질문은 새로운 SDK를 사용하여 iOS 버전이 5 미만인 경우에도 여전히 작동하도록 할 수 있습니까? 이전 휴대폰에 앱을 설치할 수없는 경우 내 앱이 낮은 iOS 버전에서 계속 실행되는지 어떻게 확인할 수 있습니까?

편집 :
좋습니다. iOS SDK 5가 기본적으로 armv6에 대한 지원을 중단 한 것 같습니다. 해야 할 일은 타겟과 프로젝트 모두에 대한 빌드 설정 아래의 아키텍처 필드에 armv6을 추가하는 것입니다. 그러면 앱이 iPhone 3G 기기에서 실행될 수 있습니다. 답변은 여기에서 찾을 수 있습니다.
iOS 5로 armv6 및 armv7 아키텍처를 구축하는 방법



답변

iPhone 3G 4.2.1에서 실행되는 새로 생성 된 Xcode 4.2 프로젝트를 얻으려고 시도하는 것과 동일한 문제가 발생했습니다. 여기에 내가 그것을 실행할 수 있었던 방법이 있습니다.

1) Target의 “Build Settings”==> “Architecture”를 “Standard (armv7)”에서 “other”로 변경하십시오. armv6 및 armv7을 추가합니다.

2) Target의 “Build Settings”==> “Valid Architecture”를 armv6 및 armv7로 변경합니다.

3) Target의 “Build Settings”==> “iOS Deployment Target”을 iOS 4.2로 변경합니다.

여기에 이미지 설명 입력

4) * -Info.plist 프로젝트를 열고 “필수 장치 기능”설정을 제거합니다 (armv7이 필요함을 참고하십시오). 여기에 이미지 설명 입력

btw 주최자를 통해 수동으로 앱을 추가하려고 할 때 이것을 알아 냈고 다음과 같이보고했습니다.

응용 프로그램을 설치할 수 없습니다

/Users/…/TestsDebug.app의 애플리케이션에 대한 Info.plist는 Dev iPhone 3G에서 충족되지 않는 장치 기능 요구 사항을 지정합니다.

그 후에는 모두 작동합니다. PITA에 대해 이야기하십시오.


답변

Xcode> 환경 설정> 다운로드로 이동하여 이전 iOS 버전에 대한 디버깅 지원을 설치하십시오.


답변

mmorris는 문제 해결에 가까워졌습니다. Info.plist에서 필수 장치 기능을 armv7이 아닌 armv6으로 설정해야했습니다. 이것이 다른 사람들에게도 도움이되기를 바랍니다.


답변

전화를 연결 한 다음 주최자로 이동해야합니다. Xcode는 자동으로 이전 버전을 요청해야합니다.

자세한 내용은 개발자 페이지를 참조하세요. 4.2 베타에 대한 메모에 설명되어 있습니다.


답변

이전 iPod Touch에서 내 앱을 실행하려고 할 때 비슷한 문제가 발생했습니다. Xcode 4.3.3으로 업그레이드했는데 앱이 더 이상 이전 하드웨어의 디버거에서 실행되지 않습니다.

여기에서 “아키텍처”및 “필수 장치 기능”에 대한 다른 의견은 올바르게 지정하기위한 중요한 세부 사항이라고 생각합니다. 불행히도 그들은 내 문제를 해결하기에 충분하지 않았습니다.

제 경우에는 빌드 계획이 범인이라는 것을 알았습니다. Xcode 4.3.3은 프로젝트를 업그레이드 할 때 GDB 디버거에서 LLDB로 전환하라는 메시지를 표시했습니다. 내 계획의 실행 작업을 다시 GDB로 변경 했을 때 Xcode의 이전 하드웨어에서 앱을 다시 실행할 수있었습니다.


답변

armv6을 아키텍처에 추가해야했지만 여전히 작동하지 않는다는 것을 알았습니다. 이제 필수 기능에서 armv7을 제거했습니다. 작동했습니다!


답변

이것은 나를 위해 일했으며 이전에 Xcode의 이전 버전을 사용했다면 작동합니다. 그렇지 않은 경우 다른 사람이 제공 한 조언에 따라 이전 버전의 SDK에서 SDK를 가져와야합니다.

sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk

이 명령은 다른 명령과 약간 다르지만 해당 명령은 SDK 폴더 자체에 파일을 삭제했습니다. 적절한 이름으로 하위 디렉토리를 만들려고합니다.