iPod Touch를 Jailbreak한 뒤 Xcode로 Application을 개발하기 위해 한 삽질들을 정리해 보았다. 사용한 디바이스는 iPod Touch 1세대이고 Firmware버전은 2.1이다.
Jailbreak
이미 잘 정리된 가이드들이 많이 있어 굳이 따로 언급할 필요가 없을 듯 하다. 링크 하나 걸고 넘어가겠다.
http://cafe.naver.com/appletouch/149128
Xcode에서 Build
Xcode에서 Simulator로는 잘 Build되지만 Device로 맞춰놓고 Build하면 에러가 난다. 두 가지를 해 줘야한다. 각각이 안되어 있을 때 Build 에러 메세지는 다르다.
CodeSign error: no certificate found in keychain for code signing identity 'iPhone Developer'
Code Sign을 위한 인증서를 만든다. 인증서를 만들 때 이름은 반드시 "iPhone Developer"로 해야한다. 인증서를 만드는 방법은 다음 페이지를 참조한다.
인증서를 생성하고 난 다음에는 Xcode를 종료하고 새로 실행시켜줘야 한다.
CodeSign error: no provisioning profiles found for code signing identity 'iPhone Developer'
/Developer/Platform/iPhoneOS.platform/Info.plist 파일을 열어 DefaultProperties의 다음 값들을 NO로 바꾼다.
- PROVISIONING_PROFILE_ALLOWED = NO
- PROVISIONING_PROFILE_REQUIRED = NO
마찬가지로 Xcode를 종료하고 새로 실행시켜줘야 적용된다.
Xcode에서 Run
역시 Xcode에서 Device용으로 Build한 Application을 iPod에 설치하여 실행하거나 디버깅하기 위해서도 두 가지를 해줘야 한다. 각각의 상황에서 어떻게 해결해야 하는지 보자.
Your mobile device has encountered an unexpected error (0xE800003A) during the install phase: Verifying application
Xcode에서 위와 같은 에러가 발생할 때에는 iPod에 패치된 MobileInstallation.framework 이 설치되어 있어야 된다. google로 검색하면 해당 firmware에 맞는 패치된 바이너리가 널려있으니 다운받아서 설치한다. 이 파일은 iPod에 직접 설치해 넣어야하고 그 iPod의 firmware 버전에 맞는 MobileInstallation.framework이어야 한다.
The application cannot be opened
설치된 Application이 iPod에서 위와 같은 에러를 내며 실행이 되지 않으면 Xcode Project의 Info.plist 파일에 다음을 추가해 주어야 한다.
- SignerIdentity = Apple iPhone OS Application Signing
만약, 이렇게 하여도 iPod에서 같은 에러가 발생하며 실행이 되지 않을 때에는 iPod에서 AppStore에 접속하여 아무 프로그램 하나를 다운로드하여 설치한 다음 다시 시도해 보도록 한다. 아마도 이 과정에서 Apple iPhone OS Application Signing이라는 Signer 인증서나 프로파일이 설치되는 것이 아닐까 하는 추측을 해본다. (이 정보는 cypark님께서 댓글로 알려주셨습니다. 너무너무 감사드립니다. ^^)
이 글은 스프링노트에서 작성되었습니다.


