아이폰에서 어플을 넣는 방법은 크게 다섯가지인것 같다.
1) 순정폰
- 개발자 라이센스를 가지고 있으면서 xcode를 이용해 셋팅된 경우
- 배포판으로 빌드된 app파일 + Distribution Provisioning 파일을 가지고 있는 경우, iTunes를 이용해서 디바이스에 넣을 수 있다.
(이 경우 앱스토어에 올리기 전이라도 친구가 어플리케이션을 테스트 하게 만들어준다. 단, 친구 디바이스의 UDID를 iPhone Provisioning Portal에서 미리 등록해 놓아야 한다.)
- 앱스토어에 올려진 어플리케이션을 다운받음

2) 해킹폰
- 크랙된 어플을 다운받아서 iFunBox나 iTunes를 이용해서 넣어줌
- 앱스토어에 올려진 어플리케이션을 다운받음


 


이 중 아이폰의 '배포판'을 만들 필요가 있을 때가 있는데,
주로 어플 배포전에 베타테스트가 필요할 때가 많다.
배포판은 개발자 라이센스와 다르게 소스가 없이 app파일(윈도우의 exe처럼 아이폰에서 실행파일)과 Provisioning파일만 있으면 동작한다는 것이 특징이다.

이 배포판 프로비저닝 파일 만들고 셋팅하기가 너무 복잡해서;;; 좋은 링크가 있길래 걸어본다.

Link: http://theeye.pe.kr/345

Posted by Jyui
원문:
http://networkpx.blogspot.com/2009/09/compiling-iphoneos-31-apps-with-xcode.html

blackRa1N으로 해킹 후, Cydia에서 http://cydia.hackulo.us/ 추가하여 AppSync for OS 3.1을 다운받았다.
(http://iphone.org.hk/apt/의 Installd patch를 깔라는 이야기가 있었는데, 아무리 해도 내 아이폰에는 깔리지가 않았다. 원래 이게 XCode의 프로그램 실행파일이 아이폰에 설치가능하도록 한다는데,  [출처: XCode에서 provisioning없이 컴파일하고 아이폰 디바이스로 빌드하기]이거 깔지 않아도 잘 되는걸 보면 AppSync에 Installd patch의 기능이 포함되어 있는게 아닌가 싶다.)

XCode에서 짠 프로그램 디바이스에 올리기, ipa만들기 강좌
- 원문을 토대로 자세하게 만드셨다. 개발자들임을 감안하셨는지 윈도우즈 설치마냥 상세한 스크린샷은 없다^^;;(그래도 번역해주시는게 어디;ㅅ;) 하지만 그냥 하라는 대로만 하면 디바이스에서 릴리즈 모드를 돌릴 수 있다. 하지만 토씨하나 잘 따라하는 것이 중요! 처음에 사소한 거 안했다가 안돌아가는 걸 목격할 수 있었다.. 단, 여기까지 따라하면 인스톨 후 바로 실행이 안된다. 당연히 디버그 모드도 안됨. 되는건 오로지 xcode에서 짠 프로그램을 개발자 라이센스 없이 디바이스에 올릴 수 있다는것...
- ipa만들기 강좌는 따라해 보지 않았지만 될 것이라고 믿으며^^;;;

<디버그모드와 릴리즈모드, 설치 후 바로 돌리기> by Jyui
한국에서 아직 아무도 한글로 쓴 분이 없는 것 같아서 혹시나 도움 되시라고 팁 몇개를 적어본다. 결론부터 따라하면 원문을 따라하면 되는데, 주의사항이 몇가지 있다. (나같은 맥과 아이폰 초보자에게 도움되시라고;ㅅ;)
- 단계1에서 /usr/local/bin 폴더가 없을 경우 mkdir을 이용하여 만들어준다. 권한이 없는 경우 sudo를 이용하면 됨.
- ldid, ldid2가 실행가능 하도록 chmod를 이용하여 775 퍼미션을 준다.

2. 단계 6은 아래와 같이 두번에 나눠서 해야함.

$install_name_tool -change /usr/lib/libmis.dylib /usr/lib/libmiss.dylib installd

$ldid -S installd
3. 릴리즈 모드 완료 후 단계 8에서 컴파일 옵션을 그대로 복사하지 말고, 개행시에는 \(백슬러시)를 써야 함. (이 기호는 행과 행 사이를 이어주는 역할이므로, 행의 마지막에서 띄어쓰기 후 \를 써야함에 주의. 복사는 사과키+C, 붙여넣기는 사과키+V, 윈도우에서 해킨토시나 vmware로 돌리는 분은 사과키 대신 왼쪽 윈도우키가 기본인것으로 안다.) 아래를 복사하면 간단할 듯 ^^;;
-dynamiclib \-install_name /usr/lib/libmiss.dylib \-current_version 1 \-compatibility_version 1 \-Wl,-reexport-lmis \-flat_namespace

- 수정한 파일을 아이폰으로 옮길 때 난 ifunbox(http://i-funbox.com/)를 썼음. 혹시 모르니 아이튠즈에서 백업 후, 수정된 파일을 옮기기 전에 디바이스에 원래 들어있던 파일(installd는 원래 존재하므로 예의상 백업, libmiss.dylib는 아이폰에 원래 들어있지 않으므로 백업할 수가 없음)도 PC에 저장요망.

- 12번까지 하고 나서 돌리니까 인스톨후 바로 실행이 되지 않았음. 인스톨은 잘 됨(근데 인스톨은 릴리즈모드에서도 잘되지 않았던가?)

- XCode 메뉴에서 [Project]-[Edit Project Setting]-Code Signing 항목 중 Other Code Signing Flags를 클릭하면 '+'기호를 누르고 -gta 옵션 추가. Configuration에서 Debug, Release에 대해 각각 지정해줘야 한다는 사실을 주의!

- XCode를 아예껐다가(사과+Q) 다시 실행하면 됨~_~

- Simulator, Device에서 Debug/Release 모드를 각각 돌려보았는데 정상적으로 된다!



다들 잘 돌아가시기를 바라며, 안돌아가거나 하시면 댓글 달아주세요~
아는 범위 내에선 자세히 가르쳐드리겠습니다;ㅅ;
도움이 되셨으면 리플도 좀... (제가 좀 소심해서 리플이 없으면 슬퍼요-.-)



덧붙이는 글:
제 자료를 토대로 다른 글을 쓰시는건 상관없지만,
출처는 꼭 남겨주시고 센스있게 트랙백도 보내주시면 감사하겠습니다 :)




Posted by Jyui