타이타늄 빌드 오류에 대처하는 우리들의 자세

타이타늄 1.8 에서 종종 코드는 이상이 없는데, 빌드하고 나면 화면에 반영이 되지 않고 캐시되는 오류가 종종 있었다.

이런경우엔 보통 build 폴더를 날리고 재빌드하면 정상적으로 동작하는 경우가 있었는데, 2.0 이후 부터는 정상적으로 잘 동작하던 프로젝트를 clean만 해도 아래와 같은 빌드 오류를 내뱉는다.

[INFO] Performing clean build

[ERROR]

[ERROR] Error: Traceback (most recent call last):

File “/Library/Application Support/Titanium/mobilesdk/osx/2.0.2.GA/iphone/builder.py”, line 1318, in main

execute_xcode(“iphonesimulator%s” % link_version,[“GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s %s %s” % (log_id,sdk_version,debugstr,kroll_coverage)],False)

File “/Library/Application Support/Titanium/mobilesdk/osx/2.0.2.GA/iphone/builder.py”, line 1224, in execute_xcode

output = run.run(args,False,False,o)

File “/Library/Application Support/Titanium/mobilesdk/osx/2.0.2.GA/iphone/run.py”, line 41, in run

sys.exit(rc)

SystemExit: 65

타이타늄 커뮤니티를 뒤져보면 위와 비슷한 오류로 고생하는 개발자가 엄청 많다. 나 또한 이문제로 몇날 몇시간을 허비한지 모르겠다… -_-;; 정확한 원인은 나도 모른다.  타이타늄 코어 개발자는 알겠지..

여튼 내가 확인한 가장 확실한 해결책은 다음과 같다.

1) 일반 리소스 폴더를 안전한 곳에 백업해둔다.

2) 그리고 타이타늄 스튜디오에서 해당 프로젝트를 제거한다. 제거 할때 프로젝트 폴더 전체를 지우자!

3) 다시 새로운 프로젝트를 생성한다.

4) 여기가 가장  중요하다, 생성한 프로젝트를 바로 빌드한다.

5) 오류없이 빌드가 되서 시뮬레이터가 뜬다면 잘 된거다.

6) 이제 원본 소스를 프로젝트에 복사하고, 다시 빌드해보자!

 

[summary]

1) First, backup Resource fold of  your project

2) Remove  the project in Titanium Studio (make sure delete project contents on disk)

3) Create new Mobile Project as a sample.

4) Important!! You must build the Sample Project  immediately.

5) Confirm the Sample Project has build without an error.

6) Now, copy origin resources to the Project  and Rebuild!

7) OR, Make sure your image resource name is written by English!

———-

[Update 2012-6-14]

자꾸 빌드가 안되는 오류의 원인을 찾았다.  원인은 바로 이미지 리소스들의 이름이 한글로 되어 있어서 문제였다. 커뮤니티에서도 이런 문제가 발생했을대 이미지 이름을 영어로 바꿔라 라는 얘기가 있었는데,.. 아 이게 이문제일 쭐이야..

한글로 된 이미지 이름이 없는 줄 알았는데,.. 파일이 딱 하나 존재했다.  그리고 이름을 변경해 빌드하니 제대로 된다.

아~ 나 그동안 뭐한거니? ㅇㅎㅎ

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.