사용환경
Macintosh 환경
Snow leopard
iPhone OS 3.1.2 (iPhone 3GS)
Xcode 3.2.1(1613)
VMWare 환경
iDeneb Mac OS X 10.5.7
VMWare Workstation 7
iPhone OS 3.1.2 (iPhone 3GS)
Xcode 3.1.4
※ 아래에 소개하는 방법은 합법적인 방법은 아니며.. 어디까지나 스터디 용으로 활용하시기 바랍니다. Hello World나 찍어보자고 Apple에 매해 99달러를 지불하긴 너무 불합리하니까요.
Xcode에 iPhone을 연결하는 과정은 다음과 같습니다 :
인증서 생성 > info.plist 내용 수정 > 빌드
해킹은 된 상태라고 가정하고 설명합니다.
(아이폰 해킹이 안되어 있다면, 해킹 먼저 하고 오세요.)
인증서 생성
- Spotlight에 keychain을 입력하시면 나오는 "키체인 접근"이라는 응용프로그램을 실행하세요.
- 아래와 같이 선택하세요
- 인증서 생성 창에서 아래와 같이 설정합니다.
(1) 이름 : iPhone Developer
기본값 덮어쓰기 - 체크
(2) 인증정보 - 계속
(3) 인증정보 - 개인정보는 아무거나 입력해도 상관없습니다 - 계속
(4) 키페어 정보 - 계속
(5) 키 사용 확장자 - 계속
(5) 확장된 키 사용 확장자 - 기능에서 코드 서명만 체크하고 계속
(6) 기본제한 확장자 - 계속
(7) 제목 대체 이름 확장자 - 계속
(8) 인증서에 대한 위치 지정 - 계속
(9) 완료
(10)아래의 그림과 같이 인증서가 생성된 것을 볼 수 있습니다.
이 목록에서 iPhone Developer 라고 쓰여 있는 것 중, 종류가 인증서 인것을 더블 클릭합니다.
(11) iPhone Developer 인증서 창이 뜨면 [신뢰] 부분 삼각형을 클릭하여 확장한 후
이 인증 사용시 : 항상신뢰로 변경해 주고 창을 닫습니다.
※ VMWare 에서는 항상신뢰가 안먹힐 수 있습니다.
VMWare 사용시에는 일단 인증서만 만들어 주세요.
Info.plist 내용 수정
(1) 터미널 창을 열어주세요 (터미널을 못찾겠으면 Spotlight에서 Terminal을 검색해도 나옵니다)
(2) 현재 경로는 상관없습니다. 아래의 명령어를 입력해 주세요.
vi /Developer/Platforms/iPhoneOS.platform/Info.plist
(3) vi 에디터에서 Info.plist파일을 열어줄 것입니다. 여기에서 46, 79번째줄에 있는
XCiPhoneOSCodeSignContext 를 XCCodeSignContext로 변경합니다.
(참고로 vi 에디터에서 esc키를 누른 후 :LineNumber 를 쓰면 해당 줄로 이동합니다.)
※ VMWare 인 경우
PROVISIONING_PROFILE_ALLOWED 와 PROVISIONING_PROFILE_REQUIED 를 찾아서
아래에 있는 String 값들을 NO로 변경하고 저장합니다.
(:wq 를 입력하면 저장하고 나갑니다)
Build
다 끝났습니다. 말 그대로 빌드 하시면 됩니다.
Xcode에서 프로젝트 만드는 법은 아시죠?
시험적으로 대충 만들어 보시구요. Xcode 창 좌측 상단에 보이는 타겟 선택하는 부분에서
Device를 선택하시고 Build and Run 하시면 됩니다.
※ VMWare 사용자일 경우.
빌드할때 Keychain 관련 팝업이 뜰 수 있습니다.
항상 신뢰(승인?)로 선택하시고.
Targets 에 있는 빌드 타겟을 선택한 후
Command+i 를 누르면 나오는 Target Info 창에서 Build 탭을 선택하고,
Code Signing Identity 와 Any iPhone OS Device 가 iPhone Developer로 되어있는지 확인 한후
Build & Run 하시면 됩니다.
됩니다.
될까요?
뭐.. os 버전이 minimum 어쩌구 저쩌구 하면서 안되시는 분은..
Device 버전을 바꿔줘야 합니다.
Xcode 와 iPhone os가 버전업 되면서 안되는 경우가 있거든요.
전 iPhone os 3.1.2 버전을 사용하는데.. XCode는 3.1.3 버전만 나타내 주면서
버전이 안맞으니 배째라 합니다.
이럴때는 Xcode 화면 좌측에 보면 Groups & Files가 있습니다.
여기있는 파일 목록들 중에
Targets라고 빨간 동그라미모양의 아이콘이 있는 부분이 있습니다.
그 안에 보면 타겟에 대한 내용이 들어가 있는 파일이 있습니다. 더블클릭해서 열어 주세요.
(기본적으로 프로젝트 이름이랑 같네요)
Target "TestProj" Info 라는 창이 뜹니다.(여기서 TestProj는 제가 만든 프로젝트 명입니다.)
- Build탭을 선택하고
- Base SDK 와 iPhone OS Deployment Target 을 iPhone OS 3.1.2 로 변경합니다.
- 타겟 정보 창을 닫은 후에 타겟을 Device - 3.1.2... 로 바꿔 선택하고 Build & Run 합니다.
이제 되나요?
안될 경우
- 프로젝트의 파일 중 ...Info.plist 로 끝나는 파일이 있습니다.
- InfoDictionary version을 5.0으로 바꿉니다.
- 다시 Build & Run 합니다.
이제 되나요?
이 글을 쓰면서 다시 설정을 바꿔서 컴파일 해봤는데, 처음에 성공한 이후로 InfoDictionary version을 다시 6.0으로 변경하고, Device를 다시 3.1.3으로 변경해도 문제없이 빌드 되네요.
아.. HelloWorld 한번 찍기 참 복잡하네요 그죠?
자 그럼.. 모두 열공하시고.. 즐거운 개발 되시기 바랍니다 ^^
몇몇단계가 빠져있을지도 모릅니다. 다 하고 나서 생각나는대로 쓴거라..
참고 : How to deploy an iPhone application without an IDP Membership
작성자가 댓글을 삭제했습니다.
답글삭제