2010년 2월 12일 금요일

XCode 에 iPhone(Device) 연결하기


사용환경
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번째줄에 있는
     XCiPhoneOSCodeSignContextXCCodeSignContext로 변경합니다.
     (참고로 vi 에디터에서 esc키를 누른 후 :LineNumber 를 쓰면 해당 줄로 이동합니다.)

※ VMWare 인 경우
    PROVISIONING_PROFILE_ALLOWEDPROVISIONING_PROFILE_REQUIED 를 찾아서
    아래에 있는 String 값들을 NO로 변경하고 저장합니다.
    (:wq 를 입력하면 저장하고 나갑니다)

Build
다 끝났습니다. 말 그대로 빌드 하시면 됩니다.


Xcode에서 프로젝트 만드는 법은 아시죠?
시험적으로 대충 만들어 보시구요. Xcode 창 좌측 상단에 보이는 타겟 선택하는 부분에서
Device를 선택하시고 Build and Run 하시면 됩니다.

VMWare 사용자일 경우.
     빌드할때 Keychain 관련 팝업이 뜰 수 있습니다.
     항상 신뢰(승인?)로 선택하시고.
     Targets 에 있는 빌드 타겟을 선택한 후
     Command+i 를 누르면 나오는 Target Info 창에서 Build 탭을 선택하고,
     Code Signing IdentityAny iPhone OS DeviceiPhone 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 

댓글 1개:

내 블로그 목록

팔로어