From Forum Nokia Wiki
本文介紹symbian下常用的工具包括編譯、打包、簽名,通常我們使用IDE開發工具不會直接用到這些命令。但是瞭解這些命令的細節對我們開發調試還是有很大的幫助,我們可以知道IDE工具在完成編譯、打包等操作都經歷了哪些步驟,一旦某些環節出現問題我們可以很快的找出問題的根源。畢竟IDE工具也是以命令行工具爲基礎,掌握這些命令也會給我們帶來更大的靈活性。
Contents [hide]
1 構建編譯
1.1 bldmake命令
1.2 abld.bat
1.2.1 abld build
1.2.2 abld resource
1.2.3 abld clean
1.3 位圖資源轉換工具:bmconv.exe
1.3.1 從.bmp文件生成.mbm文件
1.3.2 查看.mbm文件內容
1.3.3 從.mbm文件導出.bmp文件
1.4 構建編譯目標平臺軟件
2 打包簽名
2.1 makesis
2.2 makekeys
2.3 signsis
2.4 軟件打包簽名過程
2.4.1 s60第二版
2.4.2 s60第三版
構建編譯
bldmake命令
bldmake 工具用來根據當前目錄下的組建描述文件(bld.inf)產生多個makefile,然後用這些makefile構建不同平臺的組件.以下是bldmake的常用命令說明:
bldmake bldfiles - 根據bld.inf文件生成makefile及命令腳本
bldmake clean - 此命令會刪除已經生產的makefile,通常在我們修改了mmp文件或bld.inf後需要清除原來的makefile然後重新生成
bldmake inf - 此命令會列出bld.inf文件的參數,你需要根據這些參數來編寫和定製bld.inf.
abld.bat
abld是由bldmake命令根據bld.inf文件生成的批處理文件,用於執行不同的組件構建命令.以下是abld.bat的常用命令參數說明:
abld build
abld build 命令用於構建不同平臺的目標組件. 使用方法: abld build [選項] 目標平臺 構建類型
目標平臺:
通常可能的目標平臺有 arm4,armi,thumb, gcce,armv5, winscw ,wins, cw_ide,vc6,vs2003等.不同的SDK版本可能支持的目標平臺稍有差別.這裏分別包含了目標設備,模擬器環境,IDE環境幾個平臺環境.
構建類型:
其中每個目標平臺又包括幾個可能的構建類型如udeb(debug版本),urel(發佈版本),all (debug和release).
使用gcce編譯器生成發佈版本
abld build gcce urel
構建模擬器環境調試版本並顯示詳細信息
abld build -v winscw udeb
abld resource
abld resource 用於我們編譯資源文件,如 .rss .mbm .aif 等.當我們修改了資源文件可以運行此命令對資源文件進行編譯 。
abld resource
abld clean
abld clean 命令用於刪除所有生成的目標文件,需要對項目重新構建的時候運行此命令刪除舊的目標文件.
位圖資源轉換工具:bmconv.exe
bmconv工具提供了位圖文件和.mbm文件直接的轉換的功能,我們可以通過此命令把若干個位圖文件打包到.mbm文件中,也可以從.mbm文件中導出bmp文件。
從.bmp文件生成.mbm文件
把兩個12位的位圖1.bmp,2.bmp編譯成 my.mbm
bmconv my.mbm /c121.bmp /c122.bmp
把兩個12位的位圖my.bmp,mymask.bmp編譯成 my.mbm.並生成my.mbg
bmconv /hmy.mbg my.mbm /c12my.bmp /c12mymask.bmp
查看.mbm文件內容
.mbm文件是由一個或多個位圖組成,我們可通過 bmconv /v參數查看.mbm文件的內容。
bmconv /v my.mbm
從.mbm文件導出.bmp文件
bmconv /u input.mbm 1.bmp 2.bmp
構建編譯目標平臺軟件
使用bldmake,abld工具即可完成譯目標平臺軟件的編譯構建以下是其使用步驟。步驟一:生成目標平臺makefile及工具腳本
cd myapp/group
bldmake clean
bldmake bldfiles
步驟二:編譯生成目標平臺文件
abld clean
abld build gcce urel
打包簽名
makesis
makesis命令可以根據.pkg文件製作目標設備的文件的打包安裝程序(.sis) ,使用方法很簡單進入到pkg文件目錄執行 makesis myapp.pkg.
提示:我們可以通過運行 makesis -h 獲取.pkg文件的詳細語法參數
對編譯後的目標文件進行打包
makesis myapp.pkg
makekeys
在s60 3rd中軟件簽名是必須的(在2nd中沒有強制要求)簽名的軟件是被拒絕安裝的.一般的軟件發佈測試可以通過自簽名達到普通的使用目的(如果要使用擴展的capabilities 或安全性敏感的capabilities 則需要symbian sign) makekeys 命令可以幫我們創建私鑰和自簽名證書.其使用方法如下:
makekeys -cert [-v] [-len key-length] [-password password] -dname distinguished-name-string private-key-file public-key-cert
其中dname參數爲自簽名證書提供標識組織機構的信息字符串,字符串通過簡寫名稱標識不同字段其簡寫標識含義如下.
CN Common Name CN=Joe Bloggs
OU Organisational Unit OU=Development
OR Organisation OR=Acme Ltd
LO Locality LO=
ST State ST=
CO Country CO=GB
EM E-mail address [email protected]
生成私鑰及證書
makekeys -cert -password yourpasswd -dname "CN=Your Name EM=myemail@address CO=myOrg" mykey.key mycert.cer
signsis
在第三版中使用單獨的signsis工具爲軟件進行簽名. 在創建sis軟件包及簽名證書後通過signsis工具對軟件進行簽名。
signsis的用法: signsis input [output [certificate key [passphrase] ] ]
軟件打包簽名過程
在s60第二版中我們可以直接運行makesis myapp.pkg 對軟件打包。軟件簽名不是強制的,當然從安全的角度考慮對發佈的軟件進行簽名還是有必要的。以下介紹s60第二版和第三版的軟件自簽名過程。
s60第二版
步驟一:生成私鑰和證書
cd myapp/group
makekeys -cert -password yourpasswd -dname "CN=Your Name EM=myemail@address CO=myOrg" mykey.key mycert.cer
步驟二:在.pkg文件中加入生成私鑰及證書的名稱
*"mykey.key","mycert.cer"
步驟三:使用makesis命令進行打包
makesis -p yourpasswd myapp.pkg mycert.cer mycert
s60第三版
步驟一:生成私鑰和證書
cd myapp/group
makekeys -cert -password yourpasswd -dname "CN=Your Name EM=myemail@address CO=myOrg" mykey.key mycert.cer
步驟二:運行makesis命令進行打包
makesis myapp.pkg
步驟三:爲生成的sis文件簽名
signsis yoursis.sis myapp.sisx mycert.cer mykey.key yourpasswd
Retrieved from "http://wiki.forum.nokia.com/index.php/Symbian%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%E7%94%A8%E6%B3%95%E8%AF%B4%E6%98%8E"