본문 바로가기

Smart Phone/iPhone

개발한 프로그램 아이폰에 올리기


환경

한성 GT52 + MAC OS X 10.6.7
iPhone 4 + iOS 4.2.1
Xcode 3.2.5

Xcode 4가 아닌 이상, 다른 버전도 가능할 것 같습니다.


방법

1. 아이폰은 탈옥된 상태여야 합니다. 또한 Cydia에서 AppSync를 설치합니다.

2. 아이폰이 컴퓨터와 연결되어있다면 분리해놓습니다.

3. OSX에서 다음 폴더로 이동합니다.
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk
Xcode 버전에 따라 iPhoneOS4.2.sdk 폴더의 이름이 다를 수 있습니다.

4. 해당 폴더에 있는 SDKSettings.plist 파일을 적당한 곳에 백업해놓습니다.

5. SDKSettings.plist 파일을 바탕화면이나 다른 곳으로 복사하고 텍스트 편집기로 엽니다.

6. CODE_SIGNING_REQUIRED 와 ENTITLEMENTS_REQUIRED 의
String 값을 NO로 변경하고 저장합니다.


7. 변경한 SDKSettings.plist 파일을 다시 iPhoneOS4.2.sdk 폴더로 이동/대치합니다.

8. 다음 폴더로 이동합니다.
/Developer/Platforms/iPhoneOS.platform/

9. 해당 폴더에 있는 Info.plist 파일을 적당한 곳에 백업해놓습니다.

10. Info.plist 파일을 바탕화면이나 다른 곳으로 복사하고 텍스트 편집기로 엽니다.

11. CODE_SIGN_CONTEXT_CLASS의 String 값을 XCCodeSignContext로 변경하고 저장합니다.
2군데 있으며 2군데 모두 변경하셔야 합니다.


12. 변경한 Info.plist 파일을 다시 iPhoneOS.platform 폴더로 이동/대치합니다.

13. 다음 스크립트 파일을 받고(다른 이름으로 저장) 다음 명령어들을 입력합니다. 한 줄씩 입력하세요.
cd 다운받은 폴더의 경로(사용자마다 다르겠죠~)
mv script.sh script
chmod 777 script
script

14. 아이폰 프로젝트를 하나 만들거나 열어서
Xcode 상단메뉴의 Project -> Edit Project Settings -> Build 탭으로 들어갑니다.

15. Code Signing Identity 와 Any iOS 를 Don't Code Sign 으로 변경합니다.

16. 터미널에서 다음 명령어들을 입력합니다. 한 줄씩 입력하세요.
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py

17. 아이폰을 컴퓨터와 연결합니다.

18. 이전에 Organizer를 안하셨다면 Xcode에서 상단메뉴의 Window -> Organizer 를 실행합니다.
Collect 는 진행하시고 iPhone Provisioning Portal Login 은 진행하시면 안됩니다.

19. 어플리케이션 -> 유틸리티 -> 키체인 접근 을 실행합니다.

20. 키체인 접근에서 상단 메뉴의 키체인 접근 -> 인증 지원 -> 인증서 생성 을 클릭합니다.

21. 이름에는 iPhone Developer 를 입력하시고
신원 유형은 자체 서명 루트, 인증서 유형은 코드 서명을 선택하고 진행하시면 됩니다.

22. 다시 Xcode에서 프로젝트를 선택한 후 오른쪽 클릭 ->
Add -> New Build Phase -> New Run Script Build Phase 를 클릭합니다.


23. 스크립트 텍스트필드에 다음 내용을 붙여넣습니다.
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi

이제 Device를 선택하고 Build and Run 을 하면 프로그램이 아이폰에서 돌아갑니다.


물론 앱스토어에 앱을 등록할 수는 없고 디바이스 디버깅만 가능합니다.
새로운 프로젝트마다 14, 15, 22, 23번을 해주시면 됩니다.
출처 - http://cafe.naver.com/prosumernote/27628

'Smart Phone > iPhone' 카테고리의 다른 글

[Cydia]탈옥후 설치한 어플들  (0) 2013.05.02
애플의 계획  (0) 2011.03.09
아이폰 다이얼패드 스킨 파일  (0) 2011.01.13
iPhone4 Gold&Black Theme 적용가능합니다.  (23) 2010.10.23
렌즈(ip-704) 구입  (0) 2010.10.14