본문 바로가기

카테고리 없음

xcode 환경특성 일부 해결 방법

예전에 아이폰 Objective-C 프로젝트 후기 남기면서 xcode 환경 특성 타는 문제 때문에 고생했다고 했는데요. 그 일부 경험을 적어봅니다. 그러니깐 딱부러지게 로직 버그면 어떻게 찾아내겠는데 아무리 별짓 해도 안되는 경우가 있습니다. 그런데 알고보니 정말 어이없게 해결이 되는 경우가 있죠.

전에 예를들면 XML 파일에 어느태그 안에는 '스페이스'가 들어가면 안되는데 그걸 몰라서 별짓 다했다가 어떻게 겨우 스페이스 문제임을 알고 눈물 쏟을 뻔한적이 있었습니다. 초보 아이폰 개발자 하면서 저는 이런 경험들을 했습니다.


- Debug와 Release 빌드시 저장 라이브러리가 틀리다.

초보 아이폰 개발자라도 빌드시 디버그와 릴리즈 저장폴더가 틀리다는걸 아실텐대요. 전 처음에는 몰랐습니다. ㅠ.ㅠ 그때 프로젝트 구조가 [우리제품라이브러리]->[다른제품라이브러리] 에 탑재되는 형태라서 우리제품을 라이브러리로 만들어야 했는데요. 디버그로 계속 빌드 하다가 어느날 릴리즈로 했더니 아무리 별짓 다해봐도 내가 고친 라이브러리가 적용이 안되는겁니다. 나중에 알고 허탈했습니다. 다시 디버그로 빌드~

- 가끔 프로젝트에서 옛날 라이브러리를 계속 물고 있는 경우가 있다.
"여기는 [다른제품라이브러리]안에 있는 폴더라고 생각하자.
여기 각 폴더 안에 [우리제품라이브러리]가 같이 있다."


위의 팁은 좀 어이없는 팁이고, 이건 나름 고급 팁이 아닐까 ^ ^; 하는 생각입니다. 위의 사진에 각각 빌드 결과와 관련 라이브러리들이 저장됩니다. 혹시 [우리제품라이브러리]를 최신으로 빌드하고,  [우리제품라이브러리]->[다른제품라이브러리]로 복사했는데도 최신 라이브러리로 적용이 안되는 경우가 있을지도 모릅니다. 그렇다면 [다른제품라이브러리]의 위 사진 폴더 가서 그 안에 [우리제품라이브러리]를 몽땅 삭제해야 합니다.

이게 무슨 말이냐면 [우리제품라이브러리]가 [다른제품라이브러리] 프로젝트에 복사되고, [다른제품라이브러리]를 빌드 하면 위 사진의 각각 폴더에 [우리제품라이브러리]가 '관련파일'에 속해서 복사됩니다.

근데 아주 가끔 계속 위 사진의 폴더에 옛날 [우리제품라이브러리]에만 의존하고 '최신 빌드해서 복사한 [우리제품라이브러리]'는 인식을 못합니다. 그때는 저 사진속 폴더안에 [우리제품라이브러리]를 찾아서 몽땅 삭제하면 됩니다.


이것 때문에 또 몇시간 삽질 ;

- 빌드 클린은 기본
빌드 클린해도 안되면 '리소스'에 있는 이미지등의 일반 파일을 '타겟'으로 복사해야만 인식되는 경우도 있습니다.

- IB 빌더에서 가끔 아울렛 연결하는게 안먹는 경우도 있습니다. 이때는 아울렛 삭제하고 다시하면 됩니다.

그외 제가 많이 겪었던 문제는 [우리제품라이브러리] 가 C++소스랑 섞여있으면서 좀 복잡하게 얽히고 섥혀 컴파일이 안되는 경우가 많았는데요. 이건 풀어서 설명하긴 어렵네요. 아무튼 처음에 아이폰 프로그래밍 실력 때문이 아니라 이런 환경 특성을 몰라서 몇시간 삽질하고 해결안되서 복창 터질뻔 했는 경험이 있었습니다. 또 기억나면 적어보겠습니다.

그런데 알고보니 이제는 xcode의 빠르고 좋은 성능과 오브젝티브C의 깔끔함에 점점 익숙해져가고 있습니다. 아이폰, 맥북을 보며 애플이 만든것은 뭐든 대단하지 않을까...심지어 프로그래밍 환경도 다른 플랫폼보다 더 좋지 않을까 기대했는데 저는 만족합니다~!