1. 현재 Build Configuration이 Release가 아닌지 확인

2. 최신버전 sdk(3.1 이후라고 알고 있음)에서 기본환경설정값이 바뀌는 경우에 안되는 경우 있다고 함
>> 메뉴의 [Xcode]-[Preferences]-Symbol Loading Options-"Load symbols lazily" 체크해제

3. 해킨토시인 경우 부팅시 다음과 같은 옵션을 넣어주면 된다고 함
>> std_dyld=1




1번 확인하고 (당연히도 릴리즈 모드는 아니였음)
2번 바꾸고 안되서 삽질하다가
3번 하니까 되는군-_-

3번 되고 난다음에 2번을 원래대로 "체크" 상태로 바꿔주니까 또 다시 잘된다..-_-;;;
후, 그런데 3번옵션 주고 나니까 속도가 좀 느려졌다;ㅅ;


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