Mobile-아이폰iOS

Xcode 8.X.X에서 아이폰4(iOS 7.1.2)로 빌드하기

무한열정 2017. 2. 22. 19:17


Xcode 8.2에서는 아이폰4를 지원하지 않죠?

정확히 말하면 Xcode 8.X에서는 iOS8이상만 지원합니다.

물론 요즘 iOS8이상만 지원해도 충분하겠지만

경우에 따라 저사양 아이폰을 지원해야 하는데 Xcode에서 빌드가 않되면 불편하겠죠?

이경우에 Xcode가 아이폰4로 빌드하려면 iOS7을 지원해야 하는데요.

다음과 같이 따라하시면 아이폰4로 빌드가 가능합니다.


필요한 준비물은 Xcode구버전이 필요합니다.

Xcode 7.3.1을 애플사이트에서 다운로드 받고 이름을 사진처럼 변경합니다.

사진의 Xcode.app은 8.2.1버전입니다.


이전버전등을 다음 URL에서 받을수 있어요. ( 애플 ID가 필요하구요. )

https://developer.apple.com/download/more/



맥OS 특성상 Xcode.app는 사실 디렉토리입니다.

마우스 우클릭해서 "패키지 내용보기" 하면 됩니다.


우선 Xcode7.3.1에서 다음 디렉토리를 들어가면 6.0 ~ 7.1 이미지가 있습니다.

앞으로 필요한건 Xcode 8.2로 복사하면 되는 쉬운 작업입니다. ^^

다음디렉토리로 이동하여 Command + C로 복사합니다.

/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/


8.2버전으로 복사한 내용이 확인이 되시죠?

7.X 디렉토리가 복사 되어야 합니다.

다음디렉토리로 이동하여 Command + V로 복사합니다.

/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/


다음 디렉토리에 이동하여 plist파일을 오픈합니다.

더블클릭하면 Xcode의 plist 편집기가 열려서 간단히 편집이 되구요.

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist



아래 항목까지 찾아가서 다음 빨간색 박스의 항목을 추가 합니다.

Root/DefaultProperties/DEPLOYMENT_TARGET_SUGGESTED_VALUES


Xcode를 재시작 하면 이제 부턴 iOS 7.0이 설치된 기기로 빌드가 가능해집니다.




* 내용 추가합니다.

2017.05.04 대선을 코앞에둔 어느 초여름 같은 봄날에 추가합니다.


Xcode 8.3.2로 올리고 나니

앱스토어에서 직접 받은거라 그런지 SDKSettings.plist 파일이 수정이 않되네요.

다음과 같인 Unlock을 하겠냐고 묻지만 수정상태가 않되는지 오류가 납니다.



오른클릭후 정보가져오기를 선택합니다.


하단에 공유및 사용권한 섹션에서 자물쇠를 풀고

사용자 및 그룹에 본인의 계정을 추가하고

읽기 쓰기 권한을 설정합니다.


참고로 터미털에서 ls -alt로 보면

SDKSettings.plist에 @(골뱅이? ^^;) 기호가 있는걸 볼수 있습니다.


유닉스 계열 OS는 추가적인 속성 지정이 가능하고 

xattr명령을주면 다음과 같이 나오네요.

mdm:iPhoneOS.sdk Da~~~~re$ xattr SDKSettings.plist

com.apple.metadata:kMDLabel_nzxsozhhlnrns3d5b6ajvcbaay

com.apple.xcode.PlistType

참고로 ls -al@명령을 주면 목록으로 보여주네요. ^^


이렇게 해도 않되면 복사 & 붙여넣기 해서 기존 파일 삭제하고 복사본을 원본 파일로 이름 변경하니 수정이 되네요.

여기서 시간 죽이고 계신분들이 있다면 추가로 적어 놓은글을 참고 바랍니다.


iOS7(아이폰4) 시뮬레이터 Xcode 6이 동작하는 환경에서만 가능하다고 하구요.

Xcode6이 요세미티(Yosemite)에서만 가능하니 요즘의 엘케피탄에 Xcode8 않된다고 합니다.

시뮬레이터 환경은 어쩔수 없이 포기해야 할듯 하구요.

필요하다면 실제 디바이스에서 테스트 할수 없네요.