'삽질기/Cappuccino & Obj-J'에 해당되는 글 3건

  1. 2012.10.15 jake deploy 진행 후 문제 발생, 그리고 해결법.
  2. 2012.09.07 빌드 절차(?)
  3. 2012.09.07 XCodecapp 사용시 만나게 되는 문제점들 묶음.
삽질기/Cappuccino & Obj-J2012. 10. 15. 15:10

구성을 분리해야 하겠다는 생각이 들어, 짧게 끝날줄 알고 기존 프로젝트를 복사, 간단한 구조 변경을 시도.


잘 돌아가는 것을 확인함.


배포 과정을 위해서, jake 를 이용, debug, release, deploy 를 수행.


deployment 를 서버에 올렸는데 문제 발생. - 내부 코어 그래픽스 쪽 함수가 정의 안되었다고 함. -.-;;;


기존 소스를 복사해 온 녀석이라 멘붕이 더 심함. -.-;;


반나절 끊어서 테스트 후, 자포자기 한 심정으로 release 판을 쓰려고 하는 찰나, - deploy 만 오류남, release, debug 는 또 잘 됨 -.-;; - 혹시나 하는 마음에 다시한번 이번에는 '직접' 구글링을 시도, 올 3월 irc 로그에서 해결책 발견. -.-;;


...전략...


<Sergii> Hello everyone! 

17:54 <Sergii> I've got a question about CPPopover. It works great. But once I build my project with jake deploy I get in FF: [23:51:21.406] CGGradientCreateWithColorComponents is not defined @ .../Build/Deployment/mifi/Frameworks/Objective-J/Objective-J.js:3182 

17:54 <Sergii> in Safari ReferenceError: Can't find variable: CGGradientCreateWithColorComponents 

17:56 timeimp joined 

17:57 <Sergii> actually there is a difference in rendering too. Children like buttons are not drawn in Safari, but ok in FF. No background in both browsers. Release (jake release) is working as expected 

17:59 timeimp joined 

18:04 matthusby joined 

18:04 <cacaodev> Sergii: Add @import <AppKit/CGGradient.j> and jake deploy. It's definitely a bug. 

18:07 timeimp joined 

18:18 timeimp joined 

18:28 Sergii joined 

18:28 <Sergii> cocoadev: Thanks a lot! works now! =) 


... (후략) ... 출처 : http://irclogger.com/.cappuccino/2012-03-19


끄응.. 카프치노 버그;였고 해결책은 직접 임폴트. 결론은 된다. -.-;;


문제점을 못찾았던 이유 : 기존 원본 소스에서는 deploy 이후에도 잘 되던 부분이었음. 문제는 구조를 단순화한 뒤에 발생한거라..

두번째 이유는 시작부터 구글 그룹안에서만 검색을 했건 것. 어흑. ㅠ.ㅜ


-코나-




Posted by 코나



0.95 기준입니다. :)


개발 완료된 카푸치노를 배포하기 위해서 그냥 통째로 올리기에는 어쩐지 모르게 부담스럽습니다. 부끄러운(?) 소스 노출도 걱정 되고, 용량 문제도 존재하죠..


오늘은 컴파일?에 대해서 이야기해볼까 합니다.


웹은 잘 모르지만, 자바스크립트를 가볍게만들어주고, 필요없는 요소들을 빼주는 훌륭~한 컴파일러중에 jake 라는 녀석이 있고, 카푸치노는 jake 를 쉽게 쓸 수 있게 기본 탑재(?)를 시켜주고 있습니다. 물론 백엔드는 따로 rhino 혹은 jsc를 쓰고 있는 듯 싶습니다.


암튼, 결과(?)만 나열하면..


1. 프로젝트 디렉토리에서 jake debug 혹은 jake 를 실행, 디버그용 빌드를 합니다.


2. 디버그용 빌드 후, jake release 를 이용, 릴리즈용 빌드를 합니다.


3. 마지막으로, 더 용량을 줄여보기(?)위해서 jake deploy 옵션을 이용, deployment 빌드를 합니다.

 - 요녀석이 최종 용량이 제일 적네요.. 흠...


문제는.. 외부에서 라이브러리 하나라도 끌어오면.. 컴파일 끝나도 13메가-.-;;;라는 거네요.. 덜덜;;;;


그래도 일단. 고.

최근 진행중인 프로젝트의 컴파일 결과입니다. 왼쪽부터 디버그-릴리즈-디블로이먼트.

700키로 벌었다 아싸~ -.-;;

Posted by 코나

안녕하세요 코나입니다!!

정말 정말 오래간만에 글을 올립니다. ^^

요즘 카프치노를 기반으로 웹 앱을 만들고 있는 중인데, 막히거나 팁이 있을때 블로그 포스팅을 하려 합니다.

제 라이브러리도 되고, 현실적으로 아직 좀 마이너리티한 이 프레임워크가 주목을 받을 수 있겠지요?


오늘은 그 첫번째로, xcodecapp 에서 컨버팅에 실패했을 때 입니다.


컨버팅 실패시, growl 을 통해서 넘어오는 메시지는 그닥 친절하지 않습니다. 이때의 구체적 접근 방법과 제가 찾은 해결책들을 적어봅니다.


문제점 : 인터페이스 빌더에서 Obj-J 클래스를 클래스 아이덴티티로 연동 후, outlet 이 제대로 뜨지 않을 때.

해결책 및 확인 사항 :

1. 최신 빌드 (2012.09.07 현재, 0.95, 단 공식 홈이 아닌 github header clone 필요함) 에서 xcode 런칭시에 확인 해볼 것.

 - Shadows Group 안에 파일들이 정상적으로 존재 하는가 (없으면 red 로 표시됨.)

1-a. 정상 존재하지 않는다면, 오리지널 파일의 경로를 확인해 보아야 함.

 : 프로그램은 Obj-J 소스를 Obj-C 로 임시 변환 시킴 - 저장 위치 : ~/.XcodeSupport  - 문제는 파일명으로 프로젝트 경로를 이용하는데, 이때 프로젝트 경로에 _ (underbar) 가 있을 경우 변환을 하기는 하지만 XCode 4.4 에서 인식을 제대로 못함. 따라서 이 경우에는 프로젝트 경로 안에서 _ 가 없는게 제일 좋음 ㅠ.ㅜ


문제점 : nib 파일을 cib 파일로 컨버팅을 실패한다면?

해결책 :

1. 정확한 확인을 위해서 위 1 항의 소스안의 Tool 안의 XCodeCapp 앱의 프로젝트를 XCode 를 통해서 오픈, 콘솔로그 확인시 Could not convert to xml plist for file 가 발생함을 확인.


1-a. 이경우는 컨버팅 과정에서 xcode-select 커멘드 명령어로 현재 사용하는 xcode 경로를 확인해보아야 함. 특히  iOS 혹은 Mac OS 를 위해서 베타판을 설치할 경우, xcode-select 명령어가 최신에 설치된 xcode 를 경로로 잡도록 하는 듯 함. 따라서 xcode --select 으로 정상 버전(?) 링크를 연결해야 함.


문제점 : Obj-J 에서 상속을 해서 차일드클래스를 생성했는데 수퍼 클래스의 아웃렛을 인식하지 못함.

해결책 :

1. 아직 XCodecapp 이 제대로 상속 관계에서 outlet 을 처리하지 못하는 걸로 판단됨.


1-a. 이경우에는 꼼수를 좀 부렸음. 나같은 경우에는 

 가. 어차피 클래스 이름만 안바뀐 채 연결하면 되므로 수퍼 클래스 명을 CPViewController 등으로 하고, super 에 있는 아웃렛을 임시로 가져와서 연결 후 치우면 됨.. -.-;;

 나. 그게 아니면 잽싸게(?) shadows 그룹에서 변경된 Obj C 파일의 클래스 헤더에 IBOutlet 을 임시로 넣어서 연결함. 개인적으로는 가. 안이 말을 더 잘 들었던(?) 걸로 기억함.

 다. 좀 심한 말로 일단 클래스 명 안 바뀐채 연결된다면.. 문제 없음. -.-;;;


앞으로 개발 하면서 팁들은 계속 추가 됩니다.

Posted by 코나