맥을 얼마전에야 샀습니다. 그런데 주문한 날 새로운 OS가 나오더군요. 그래서 맥을 산곳에 전화를 해서 새로운 OS (Snow Leopard) 가 나온 것을 알고 있다. 빨리 한개 보내달라고 했습니다. -ㅅ- 물론 그쪽에서는 정중하게 되묻더군요 "머리에 구멍이라도 나셨습니까? 손님?" 네 그렇습니다. 저는 진상짓을 제대로 하기 시작했습니다. 회사에서 재무 보는 친구가 제 등쌀에 못이겨서 전화기를 들고 이야기를 하고 있고 저는 옆에서 어떻게 하겠다는 협박만 알려줬습니다. 착한 제 친구는 (재무 보는 친구) 땀을 뻘뻘 흘리면서 저의 온갖 진상짓을 마이너한 버젼으로 항의를 하더군요. 결국 '걍 환불하고 조금 기다렸다가 새 OS 장착 되는거 확인하고 사겠다' 라는 아주 멋진 협박을 알아내서 이야기 했더니 그쪽에서 바로 '이거나 먹구 떨어져라' 라는 식으로 OS 업그레이드 비용을 통장으로 부쳐주더군요.

뭐 열심히 얻어낸 쾌거였기 때문에 즐거워 하면서 운영체제를 업그레이드 했지만 새로받은 OS 는 64비트 전용이라 기존의 OS 에서 설치했던 프로그램들이 충돌나는 것이 몇개 있었습니다. 예전에 제가 올렸던 [[예전 포스팅]] 같은 경우 말이죠.

항상 새로운 것이 문제입니다. 새로운 것을 그냥 쓰는 것은 사실 문제가 되지 않지만, 잘 쓰거나 또는 뭔가 사람들이 잘 안하려는 것을 할려고 할 때는 더욱 더 문제가 되기 마련입니다.

아이폰 어플리케이션 개발이 바로 그런것이라고 볼 수가 있습니다.  예전 버젼이라면 문제가 없겠지만 아이폰 OS 가 최신인 3.1.2 를 쓰면 문제가 되고, 개발하는 OSX 가 10.6 (즉 Snow Leopard)가 되면 문제가 되기 마련이지요. 이 두가지가 결부된다면? 아 끔찍합니다..

바로 이러한 짜증을 바탕에 두고 이 작업을 시작했습니다. 결국 논점은 그것입니다. 개인용 제작시 우리돈으로 대략 년당 12만원 , 상업용 제작시 우리돈으로 대략 년당 120만원 이돈을 아껴볼려고 하기 때문입니다. 제가 상업용을 제작할 것도 아니고, 그렇다고 제작한 것을 외부에 공개할 것도 아니고 그냥 간단하게 제작해서 제 아이팟 터치에 넣어서 가지고 싶은 것인데 너무 돈이 비싸지요. 즉 라이센스 작업은 나중에 공개할 때 해도 충분하다는 것입니다.

물론 쉬운 작업은 아니였습니다. 해놓구 보면 쉽지만 하기까지의 과정이 쉽지 않더군요. 물론 어려운 이유는 자료가 없어서 입니다. 정말 찾기 힘든 자료들과 된다고 쓰여져 있는데 안되는 것들 이러한 것들이 총체적으로 난항을 겪게 했습니다. 더러워서 돈 내고 받아볼까? 라는 생각까지 해봤습니다. ^^;;

아이폰 jailbreak 에 대해서는 굳이 설명 드리지 않겠습니다. 하는 법도 어렵지 않고 또 jailbreak 도 못하신다면 거기서 돈안내고 개발은 포기하시는게 정신 건강상 좋습니다. 제가 쓰는 방법은  blackra1n 이라는 툴을 쓰는것입니다. 지금까지 나온 방법중에서 가장 혁신적인 원버튼 해킹이 됩니다. 구글에서 'blackra1n'을 검색해보시면 바로 프로그램 뜹니다.

아이폰 (또는 아이팟 터치)이 '탈옥'이 됐으면 이제 개발에 들어갈 차례입니다. apple 의 Developer 사이트에서 iphone_sdk_3.1.2_with_xcode_3.2.1__snow_leopard__10m2003.dmg 를 다운 받습니다. 버젼과 OS 확인하시고 받으시면 됩니다. 이 글을 쓰는 당시는 저 버젼이 최신이였습니다. 그리고 바로 설치해 주시고요. 그러면 컴퓨터에 Xcode 3.2.1 버젼이 설치되었을 것입니다.

XCode 를 실행하고 다음 그림과 같이 "Create a new Xcode project" 를 선택합니다.

Welcome to Xcode

이런 툴을 공짜로 배포하는 애플이라니!! 하지만 인증서로 돈 계속 받으니 MS 가 나은건가?..



테스트할 것이기 때문에 프로젝트 종류는 아무거나 선택합니다.


Window-based Application

윈도우 베이스 어플리케이션으로 테스트



프로젝트 이름을 정하는 것입니다. 이거도 아무거나 선택합니다. 저는 "Crazy World" 라고 정했군요.


New Project

헬로 월드가 식상해서...



자 일단 컴파일을 해보면 Simulator 로는 잘 되는 것을 확인할 수 있습니다. 이제 Device - 3.1.2 로 바꾸고 컴파일을 해봅니다. 잘 컴파일이 되고 인스톨이 된다면 성공이겠지만. 당연히 안 될 것입니다. 


Device - 3.1.2

디바이스에서 프로그램을 돌릴꺼라는 이야기입니다.




정확히는 컴파일이 안될 것입니다. 일단 컴파일 부터 되게 만들어 보겠습니다.

참조: http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

여기에서 참조하실 부분이 'I want to compile' 부분 입니다. 조금 정리를 하자면

1. 자체 제작할만한 인증서가 필요합니다. 인증서를 만드는 방법은 여기에서 인증서를 만드는 방법이 있습니다.  인증서 만들때 Name (이름) 을 'iPhone Developer' 로 만들어 주는 것만 확인하시면 됩니다.

2. 만들어진 인증서는 '로그인' 키체인에 존재해야 합니다. 절대 '시스템' 키체인이 아닙니다. 그리고 모든 사용자에게 신뢰하겠냐는 부분은 하겠다고 체크하셔야 합니다.

3. 인증서가 만들어졌으면 다음과 같은 작업을 해줘야 합니다.

   3-1. /Developer/Platforms/iPhoneOS.platform/Info.plist 파일을 열어서
   3-2. 46 번째 줄에서 XCiPhoneOSCodeSignContext 를 XCCodeSignContext 로 바꾸어 줍니다.
   3-3. 79 번째 줄에서 XCiPhoneOSCodeSignContext 를 XCCodeSignContext 로 바꾸어 줍니다.
   3-4. 파일 저장합니다.
   3-5. XCode 를 재시작합니다.

4. 이제부터 컴파일이 아주 부드럽게 될 것입니다.


그리고 그 다음부터 참조한 페이지에서 나오는 'I want to install and debug too' 부분은 열심히 따라 했지만 아이팟 터치만 두 세번 복원하고 안된다는 것만 확인했습니다. 모름지기 하는 방법이 복잡한 것 치고 좋은 방법이 없다는 것을 다시 한번 확인한 셈이라 볼 수 있습니다.참조 페이지를 쓰신 분은MobileInstallation.framework 을 안좋아 하신다는 것이 힌트가 되서 MobileInstallation.framework 방법으로 성공했습니다. 그 방법을 알아보기로 하지요. 매우 쉽습니다.

참조: http://www.iphonedownloadblog.com/2008/08/18/mobileinstallation-for-iphone/

위 참조 사이트에서 'MobileInstallation patch for iPhone 3.1.2 Firmware:' 부분을 참조하시면됩니다. 

1. 아이폰이나 아이팟 터치에서 Cydia 를 실행시킵니다.

2. 아래쪽 탭에 있는 'Manage' -> 가운데에 있는 'Sources' -> 상단 오른쪽에 있는 'Edit' 클릭 ->  상단 왼쪽에 있는 'Add' 클릭

3. http://cydia.hackulo.us 입력하시고 'Add Source' 버튼 클릭

4. 'Add Anyway' 버튼 클릭 후 안정적으로 추가되면 아이폰(아이팟 터치)을 리부팅 시킵니다.

5. Cydia 를 실행시키고 하단 탭의 'Search' 를 클릭하고 "AppSync for OS 3.1' 을 설치합니다. 그리고 리부팅을 다시 한번 해줍니다.

이제 정상적으로 컴파일이 되고 아이팟 터치에 인스톨까지 되는 것을 확인하실 수가 있습니다. 년당 12만원을 아주 손쉽게 아꼈군요..


+ Recent posts