빌드할때 콘솔을 보니 sbi 란 녀석이 패키징과 사이닝을 담당하고 있다. 패키지 정보와 사이닝 정보를 제공하면 .tpk 폴더에 설치할 파일들을 복사하고, 사이닝을 진행한다.
해당 명령은 아래와 같다. 리눅스와의 차이는 sbi.exe , sbi 인듯 하고, action과 -ARCH 정보만 달라진다. 이미 컴파일도 끝나고 바이너리가 나와있으므로 정보제공 외에는 큰 의미는 없는 듯 싶다.
/tizen-sdk/tools/smart-build-interface/bin/sbi
action tizen-emulator-2.2.native_llvm31.i386.cpp.app -- buildpackage
-BUILD_DIR="/프로젝트/Debug"
-ARCH=i386
-PKG_TYPE=TPK
-PKG_NAME=org.tizen.pkg-name
-PRJ_NAME=project-name
-ARTIFACT_NAME=project-name
-PKG_VER=1.0.0
-SIGN_CERT_DIR="/tizen-sdk/tools/certificate-generator/certificates/developer/tizen-developer-ca.cer"
-SIGN_AUTHOR_KEY=".../keystore/author-key.p12"
-SIGN_AUTHOR_PWD="author-pwd"
-SIGN_DIST1_KEY="/tizen-sdk/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12"
-SIGN_DIST1_PWD="dist-pwd"
-SIGN_DIST1_CA="......./certificates/distributor/tizen-distributor-ca.cer"
-SIGN_DIST2_KEY=""
-SIGN_DIST2_PWD=""
-SIGN_DIST2_CA=""
-SIGN_DIST2_ROOT=""
파일 목록을 위한 임시폴더
그리고 리소스와 각종 라이브러리 manifest파일등을 임시 폴더에 복사한다. 위의 경우 임시폴더는 아래와 같고, 해당 폴더에 프로젝트의 파일들이 복사된다.
/프로젝트/Debug/.tpk/
manifest.xml
bin/
res/
lib/
data/
shared/res/
shared/data/
shared/trusted/
사이닝
/tizen-sdk/tools/ide/bin/native-signing
native-signing ".tpk"
"...../tizen-developer-ca.cer"
"...../author-key.p12"
"author-pwd"
"...../distributor-signer.p12"
"distributor-pwd"
"..../distributor-ca.cer"
""
"pwd???"
""
압축
zip -rv "패키지명.tpk"
요렇게 하면 설치될 tpk 파일이 만들어 진다. 이후 단말에 설치가 이루어 지는데... 내부적으로 패키지 관리하는 녀석이 manifest.xml를 파싱해 필요한 정보들을 저장하고, /opt/usr/apps/ 아래에 파일들을 복사하게 된다.
단말에 설치되는 위치
/opt/usr/apps/어플리케이션ID/
타이젠 ide는 패키지를 만들수 있는 메뉴를 제공하는데, 이를 통해 패키지만 만들고, 필요에 따라 단말에 설치할 수 있다. 안드로이드에서 많이 봐왔던 adb 와 같은 sdb라는 녀석을 통해 패키지를 전달하고, 설치하면 된다. sdb는 /tizen-sdk/tools 에서 찾을 수 있으며, 대부분의 사용법은 안드로이드의 그것과 동일하다. ( ex) adb logcat == sdb dlog )
패키지 정보 보기
> sdb root on
> sdb shell
$ /usr/bin/pkginfo --pkg 패키지명
설치된 패키지 정보를 모두 살펴볼수도 있다.
$ pkginfo --listpkg
패키지 설치
그냥 패키지 파일을 임시 폴더에 복사하고, pkgcmd 를 사용해 설치하면 된다.
> sdb -d push 패키지.tpk /home/
> sdb shell
$ cd /home
$ pkgcmd -i -t tpk -p 패키지.tpk
$ sync
$ reboot
pkgcmd 옵션
-i,--install
-a,--app-path
-u,--uninstall
-c,--clear
-t,--package-type [tpk]
-n,--package-name
-p,--package-path "/opt/usr/apps/tmp/패키지명.tpk"
-k,--kill
기타
앱 관련 디렉토리가 몇가지 더 보이는데, /usr/apps/ 에도 패키지들이 보인다. 빌드해서 에뮬에 설치된 패키지가 안보이는 것으로 봐서는 이미 에뮬레이터에 설치되어 있는 패키지들 인듯 싶다.(프리로드??)
이곳저곳 디렉토리를 둘러보다 보니 /usr/share/packages/ 에 또 패키지 정보들이....이름들이 어플리케이션ID인데 내용을 보니 각 앱의manifest 파일들이다. 뭔지 모르겠으나 암튼 이 역시 프리로드된 패키지들의 정보인듯 싶다.
pkginfo 의 커맨드 중에 --imd , --rmd 라는게 To insert|remove manifest info in DB 라는 설명이 보이는데, db로 관리되는 앱은 /usr/share/packages/ 에 등록되나 보다...(확실치 않다 -_-;;;)
'프로그래밍 > Tizen' 카테고리의 다른 글
[EFL] Ecore_Exe 프로세스간 통신 (0) | 2014.07.19 |
---|---|
[EFL] Elementary (3) | 2014.07.17 |
[EFL] Elementary 위젯 (0) | 2014.07.17 |
[EFL] EDC 스크립트 (0) | 2014.07.17 |
[EFL] Evas 오브젝트 (0) | 2014.07.16 |
[EFL] HTTP 연결 (0) | 2014.07.13 |
[EFL] Ecore 이벤트 핸들러 (0) | 2014.07.13 |
[EFL] 기본 윈도우 (0) | 2014.07.13 |