[펌] iPod Touch Jailbreak & Xcode 사용

최근에 취미로 iPod App 개발을 시작하였다. Xcode에서 개발한 App은 애플의 웹스토어를 이용해서만 배포 할 수 있게 되어있으며 이는 개발자가 가지고 있는 iPod에도 동일하게 적용 된다. 엡스토어에 App을 등록하기 위해서는 년 $99 이 필요한데 액수의 크고 작고가 문제가 이나라 단순 테스트를 위해서 등록하는 것 자체가 어불성설 이 아닌 가 싶다.

그래서 Jailbreak 된 iPod 에 App을 넣는 방법을 찾다 매우 잘 정리되어 있는 페이지를 발견해서 스크랩 해 둔다. 아래의 환경은 Firmware 2.1 인데 본인의 경우 2.2에서도 같은 방법으로 매우 잘 작동 하였다. Info.plist 의 값을 수정하는 부분에서 만약 값이 없다면 새로 추가해 주면 된다.

————————————————————————

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”로 해야한다. 인증서를 만드는 방법은 다음 페이지를 참조한다.

http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_2.html

인증서를 생성하고 난 다음에는 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에 맞는 패치된 바이너리가 널려있으니 다운받아서 설치한다.

The application cannot be opened

설치된 Application이 iPod에서 위와 같은 에러를 내며 실행이 되지 않으면 Xcode Project의 Info.plist 파일에 다음을 추가해 주어야 한다.

  • SignerIdentity = Apple iPhone OS Application Signing

출처 – http://han9kin.doesntexist.com/17

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.