titanium 개발시 TI sutdio 와 tishadow 를 이용해서 개발하면 편리하다.

eclipse 기반의 TI sutdio 가 좋기는 한데, 자신이 쓰는 편집기를 쓰고 싶을 수도 있다.

나의 경우 sublime text 를 쓴다. 그래서 관련 빌드 환경구성 및 사용법을 정리하고자 한다.


다음의 단계로 진행한다.

1) tishadow 실행환경으로 빌드하기 위해 build 를 별도위치에 생성한다.

자신의 프로젝트 위치에서 다음 명령을 내린다.

$ ts appify -d build/appify

다음과 비슷한 결과를 얻게 된다.

[INFO] Beginning Build Process
[INFO] Compiling Alloy for android
[INFO] 35 file(s) bundled.
[INFO] Bundle Ready: {자신의 프로젝트 위치}/build/tishadow/dist/project01.zip
[INFO] Creating new app...
[INFO] TiShadow app ready



다음을 진행하기 전에 android 기기가 연결되어 있는지 확인.

⟫ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
44db4d4c        unauthorized

=> 이렇게 나오면 안된다. device 라고 정상적으로 나와야 함. ( http://blog.1day1.org/518 를 참조)
  usb 연결을 끊었다가 다시 연결한다.

⟫ adb devices
List of devices attached
44db4d4c        device

OK 이제 정상으로 나왔다.


2) appify 방식으로 빌드한다.(실행위치 build/appify => 1)에서 정한 위치)

⟫ ti build -p android -T device

다음 명령으로 빌드하면 최종 폰에서 앱이 설치되고 실행된다.


3) 개발환경과 앱의 appify 가 통신하기 위한 server 실행.

⟫ ts server
[DEBUG] TiShadow server started. Go to http://localhost:3000

앱쪽으로 javascript 코드를 넘겨주는 역할의 서버를 실행한다.(기본포트 3000 을 이용한다)
실행위치는 아무곳이나 상관없다.


연결이 이상한 것 같아 host 를 지정해줬다.

⟫ ts config --host 192.168.0.33

다음 파일에 저장이 된다.
$ cat ~/.tishadow.json
{
    "host": "192.168.0.33"
}

⟫ ts server
[DEBUG] TiShadow server started. Go to http://192.168.0.33:3000

http://192.168.0.33:3000 로 접속해보면 연결된 device 가 보여야 한다.

안보인다. 뭔가 이상하다.

프로젝트가 이상한 것 같아. 다른 정상적인 프로젝트로 다시 해봤다.
아래처럼 Devices 부분에 연결된 장치가 보여야 정상이다.


4) 코드 변경을 감지하여 자동으로 빌드하고 server 로 업로드한다. (실행위치 프로젝트 )

⟫ ts run
[INFO] Beginning Build Process
[INFO] Compiling Alloy for android
[INFO] 35 file(s) bundled.
[INFO] BUNDLE sent.


변경 분만 빌드후 전송 (아래처럼 변경내용이 없으면 나오는 메시지는 정상)

⟫ ts run -u
...
[WARN] Nothing to update.




[아래 부분 실패]  => 해결책 : http://blog.1day1.org/533

자동 코드감지 ( @ 부분을 추가)

⟫ ts @ run -u


정상동작해야 하는데 뭔가 이상하다. 다음과 같은 에러가 발생.

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: watch ENOSPC
    at errnoException (fs.js:1024:11)
    at FSWatcher.start (fs.js:1056:11)
    at Object.fs.watch (fs.js:1081:11)
    at Gaze._watchDir ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:279:30)
    at {홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:336:10
    at iterate ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/helper.js:52:5)
    at Object.forEachSeries ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/helper.js:66:3)
    at Gaze._initWatched ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:332:10)
    at Gaze.add ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:167:8)
    at new Gaze ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:68:10)

node 패키지에 이상이 있는 것인가? 윈도우 쪽에서는 정상작동했다.

일단 수동으로 ts run 은 가능하니, 일단 여기까지. 추후 문제되는 부분을 확인해봐야 겠다.




5) sublime text 등 자신의 편집기로 개발

자신이 쓰는 편집기로 개발하면 된다. 소스 수정 후에  ts run -u 명령으로 빌드 => 전송 하여 바로 앱의 변경사항을 확인할 수 있다. 처음부터 빌드 하는 방식보다 편하고 빠르게 개발할 수 있다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,