# xcode v3.1.3 + iphone OS 3.0 + 해킹터치에 어플리케이션 올리기를 공개해놨습니다. 바빠서 대략적인 내용만 추려서 올려놨습니다. 세세한 스크린샷과 덧붙임은 나중에 시간날때 추가로 수정해 놓겠습니다. 하도 많은 분들이 공개로좀 해달라고 하셔서 대략적으로 정리만 해서 올립니다.
http://www.hyemi.org/21256#0


 

# 설치 환경

redsnow lite로 해킹한 아이팟 터치 2세대
Mac OSX Leopard 10.5.6
iPhone SDK 2.2.1

# 해킹된 터치로만 가능하며 혹시 이방법을 따라하였을때도 에러가 발생할경우 X-IPA나 mobileinstallation 패치등을 사용해 mobileinstallation파일을 패치하고 해보시기 바랍니다. 아마도 이런 패치 없이도 가능할겁니다. 이미 이 게시글을 보고 성공해서 아이폰 프로그래밍 공부하고 계신분들도 있구요..

# 2009.04.23 - 얼마전 터치2세대의 정식 해킹툴이 나왔습니다. 예전 redsnow lite는 해킹후 리부팅을 하면 부트 코드를 다시 먹여줘야 해서 불편했지만 최근에 나온 정식 해킹툴은 직접 정식 펌웨어를 탑재하고 있는 상태에서 커스텀 펌웨어 올릴 필요 없이 직접 수정하는 방식으로 리부팅 해도 코드를 먹이지 않아도 되고, iTunes에서 그냥 복원 누르면 해킹전 상태로 잘 돌아갑니다. ^^:
기본적으로 아이팟 터치에 어플리케이션을 올리기 위해서는 애플에 등록을 해야 한다. 매년 $99 를 지불하는데 이게 처음에만  지불하면 끝이 아니라 매년 한번씩 $99의 돈을 지불하면서 갱신해야 된다. 아직 어플리케이션을 올려보지도 못한 상황에서 결제까지 해야 한다. 물론 직장을 다니는 사람의 경우 저정도는 카드로 얼마든지 결제할수 있다. 하지만 아직 어플리케이션을 공부하는 어린 학생들의 경우는 액수도 액수지만 카드로 결제하기에는 더욱 어려움이 있다.

애플 개발자 등록을 마치면 코드 사인이라는 것을 다운 받을수 있는데 이게 일종의 인증서 같은 것이다. 인증 기간이 개발자 등록 날자부터 1년인 인증서를 받게 되고 자신이 개발한 어플리케이션을 직접 장치에 올릴때 이 인증서로 서명을 하는것이다. 인증이 만료되면 돈을 다시 지불하고 갱신해야 한다. 지금은 테스트삼아 어플리케이션들을 제작해 올려보기 위해 굳이 터치를 해킹까지 하고 이렇게 어플리케이션을 제작해보지만 나중에 뜻이 있는 사람은 애플에 비용을 지불하고 개발자로 등록을 해야만 자신이 만든 어플리케이션을 App Store 에 올려 사람들이 어플리케이션을 다운 받아 볼수 있다. 시간이 별로 없지만 틈틈히 갈고 닦아 어플리케이션을 App Store에 올릴수 있는 수준이 되면 꼭 등록하고 어플리케이션을 배포 해보고 싶다.

애플개발자포럼 홈페이지에서 해킹된 터치에는 애플 개발자 등록 없이 어플리케이션을 올릴수 있다라는 단지 하나의 댓글을 힌트로 여기저기 수소문한 끝에 굳이 개발자 등록을 하지 않아도 테스트삼아 어플리케이션을 올릴수 있다는걸 알았다..

먼저 나의 터치 2세대는 2.2.1버전의 펌웨어로 업데이트한 상태이기 때문에 최신 SDK인 2.2.1용 SDK를 다운받아 설치했다. 최신버전의 SDK는 Leopard 10.5.6 버전에서만 돌아가기 때문에 되도록 OSX버전은 10.5.6이 설치되있어야 한다. (10.5.6아래 버전을 설치하고 있다고 하더라도 버전 파일을 수정해서 SDK를 설치할수 있지만 그래도 애플에서 권고하는 대로 설치할것을 추천)

그림 1.jpg
OSX 버전이 10.5.6이어야 한다. 노트북에는 Retail이 설치되있지만 데스크탑에는 해킨10.5.6인 iDeneb 10.5.6을 설치했다.

그림 2.jpg
개발툴인 iPhone SDK설치.(iPhone SDK는 Xcode v3에 iPhone 개발 관련 리소스가 추가된 것이므로 기존에 Xcode만 설치한 사람의 경우 다시 iPhone SDK를 다시 설치하거나 iPhone SDK 관련 패키지만 따로 설치해줘야 한다. 되도록 기존 Xcode 완전 삭제후 iPhone SDK를 설치할것을 권장. 기존 Xcode의 삭제는 그냥 폴더만 날려버리지 말고 잘기억이 안나는데 uninstall 인가 하는 삭제파일이 /Developer폴더 안에 어딘가에 존재한다. 이걸 이용해 깨끗하게 언인스톨하길 추천.. 나중에 기억나면 경로 추가하겠음..)

그림 3.jpg
일반적인 옵션으로 그냥 설치

그림 4.jpg
SDK설치 후에 코드 사인을 생성해야 한다. 처음에 설명한 인증서 생성과정이다. OSX 설치시 자동으로 설치되는 유틸리티인 키체인 접근 실행

그림 5.jpg
현재는 인증서가 존재하지 않는다.

그림 6.jpg
메뉴에서 인증서 생성 선택

그림 7.jpg
이름은 반드시 iPhone Developer로 해야 한다. 이부분만 정확히 정어주면 그다음 단계는 모두 그냥 계속 버튼을 눌러끝까지 넘어가면됨

그림 8.jpg그림 9.jpg그림 10.jpg그림 11.jpg그림 12.jpg그림 13.jpg그림 14.jpg그림 15.jpg그림 16.jpg
인증서가 생성됨

그림 17.jpg
인증서가 생성된 모습

그림 19.jpg
인증서 생성후에 원래 PROVISIONING이란것도 애플에서 제공받게 되는데 이부분을 건너뛰게 하도록 /Developer/Platform/iPhoneOS.platform/Info.plist 파일을 열어 위와 같이 수정한다.
위처럼 PROVISIONING_PROFILE_ALLOWED , PROVISIONING_PROFILE_REQUIRED 키값을 NO로 생성해줘야한다.
혹시 지금 SDK(Xcode)가 실행중이라면 종료했다가 다시 실행한다.

그림 20.jpg
 Xcode를 실행해보면 컴퓨터에 연결된 터치의 정보가 보인다.

그림 21.jpg
먼저 간단한 어플리케이션을 에뮬레이터에서 실행 테스트

그림 22.jpg
디바이스에 직접 올리기 위해 컴파일 환경을 Device - 2.2.1 | Debug 또는 Release로 바꾸고 Build and Go 버튼을 누르면 위와 같은 화면이 나온다. 컴퓨터에 연결된 아이팟 터치에 프로그램을 올리기 위한 서명에 아까 우리가 임의로 생성해논 서명을 사용한다는 것인데, 항상 허용을 선택해 다음부터는 확인 창이 뜨지 않게 하여도 되고 그냥 허용을 눌러 실행할때마다 확인해줘도 된다.

그림 23.jpg
어플리케이션이 빌드되고 연결된 터치로 어플리케이션이 설치된다. 하지만 설치된 어플리케이션을 원격으로 실행하려는 단계에서 보안 정책 에러가 발생한다. 이부분을 넘어가기 위해 아래의 단계를 추가로 진행.

그림 24.jpg
방금 간단하게 만든 어플리케이션의 소스 디렉토리에 보면 Info.plist 파일이 있는데 그 파일을 열어 위처럼 SignerIdentity 키값을 추가해준다.
이 수정은 어플리케이션을 새롭게 만들때마다 해당 폴더의 Info.plist파일을 열어 수정해줘야 한다. 한번 수정하고 나면 더이상 수정안해도 되지만 새로운 프로젝트를 만들면 한번은 수정해줘야 한다. 아예 새로운 프로젝트를 생성하자 마자 이 파일을 한번 수정해노면 된다. 물론 이 파일을 수정한후에는 SDK(Xcode)를 종료했다가 다시 실행해서 프로젝트를 다시 불러들여 작업을 진행하길 추천.

이제 다시 Build and Go를 눌러보면 아까 이미 어플리케이션은 터치에 올라가있는 상태였고 원격 실행이 에러난 상황이었는데 이번에는 원격 실행까지 작동하여 터치에 올린 어플리케이션이 실행된 모습을 볼수 있다. 원격 실행이다 보니 터치화면에서 어플리케이션이 처음 실행될때 까만화면에 잠시 멈춘듯 보일수도 있으니 조금 기다려야 한다.

IMG_2928.jpg

*****************************************************************************************************************************
이 글을 허락없이 퍼가거나 다른곳에 게시하시면 안됩니다. ^^;
*****************************************************************************************************************************