1. 程式人生 > >為BB 10轉制安卓應用 打包,簽名,安裝

為BB 10轉制安卓應用 打包,簽名,安裝

               

轉換步驟概述

準備工作

 建議下載JDK 1.7 Windows x86版本,例如 88.75 MB的jdk-7u17-windows-i586.exe 。

安裝JDK。

設定系統PATH路徑包含JAVA_HOME的bin目錄;

或者在命令列下執行(每次開啟DOS視窗都需要執行一次)

Set PATH="C:\ProgramFiles (x86)\Java\jdk1.7.0_17\bin";%PATH%

1.2  下載安裝AndroidSDK

  建議下載32 bit的ADTBundle,大概405MB。AndroidSDK下載地址

解壓縮到C:\android\adt-bundle-windows-x86目錄(比如),下面有SDK Manager程式和sdk目錄。

執行SDKManager程式,選擇下載Android SDK Tools元件(大概9MB)。

1.3 下載Android/BlackBerry命令列轉換工具包

在BlackBerry網站下載Command-linetools for Android Apps,大概2.66MB。解壓縮到C:\android\blackberry.tools.SDK目錄(比如),下面有bin和lib目錄。

1.4 到黑莓官網申請應用簽名Key

到BlackBerry網站上申請簽名Key,免費申請。申請的時候,選擇For BlackBerryPlayBook OS and BlackBerry 10 and Higher,建議申請用英文填寫相關資訊,注意Company

公司名一項在後面會用到。一般地,BlackBerry公司會在兩個小時內用兩封電子郵件將金鑰檔案發給你。

收到兩封郵件後,下載兩個CSJ,放到Command-linetools的bin目錄下面,比如C:\android\blackberry.tools.SDK\bin目錄。

 生成csk和p12檔案命令列1:blackberry-signer -csksetup -cskpass <你設定一個csk密碼>命令列2:blackberry-signer -register -csjpin <你申請csj時填寫的pin>  -cskpass  <你設定的csk密碼>  <你申請到的csj檔名>

提示:對於Android應用轉制,只需要匯入一個RDK CSJ檔案。但是還是建議兩個csj檔案都匯入,那麼要匯入兩次。

命令列3:blackberry-keytool -genkeypair -keystore <你希望生成的p12檔名>  -storepass<你設定一個p12檔案密碼>  -dname  ”cn=公司名”  -alias author

1.5 將你的BlackBerry10手機設定為開發模式

在BlackBerry手機上,設定->安全和隱私->開發模式,選擇“使用開發模式”(注:首次在裝置上操作可能會要求你設定密碼)

1.6記下手機的IP地址

如果USB線連線到PC機上,手機的IP地址是169.254.0.1

如果是手機連線WiFi,在BlackBerry手機上,設定->關於->網路,檢視IPv4地址

PC上面可以PING通手機IP

應用轉換

在轉換工具包中有個”bin”資料夾,下面的所有操作都在這個檔案中操作,所以把你要操作的APK拷貝到這裡。

2.1 apk 轉 bar 命令列: apk2bar <你的apk名> <android SDK路徑>

結果:提示Info: Barsigned,在當前目錄下面多了個bar檔案,未簽名。

2.2  bar檔案簽名命令列1:

blackberry-signer-cskpass  <你設定的csk密碼>  -keystore<你生成的p12檔名>  -storepass<你設定的p12檔案密碼> <你轉的bar檔名> RDK命令列2:

 blackberry-signer -keystore <你生成的p12檔名>  -storepass <你設定的p12檔案密碼> <你轉的bar檔名> author

結果:bar檔案更新,新加入了你的簽名。

2.3 安裝bar檔案到BlackBerry 10手機上命令列:

blackberry-deploy-installApp -password <你的裝置密碼> -device <裝置IP地址>  -package <你的bar檔案>

結果:在BlackBerry手機螢幕上找到這個應用。

接下來點選執行,測試這個應用是否工作正常,比如螢幕大小尺寸,網路連線,功能是否正常等。

2.4根據需要調整應用,重複以上1-3的步驟打包測試

2.4.1 調整BlackBerry不支援的Android API

BlackBerry的Android應用支援大部分AndroidJava API,但是不支援某些特性和API,比如APK檔案中打包的C語言原生代碼,不支援藍芽和NFC等硬體。

不支援的特性,比如APK中打包的第三方原生代碼,以及不支援的藍芽和NFC硬體API,我們或者用Java來實現,或者就只能割捨這部分功能了,這都需要開發人員調整程式程式碼,測試。

2.4.2 應用圖示大小調整為114x 114畫素

BlackBerry的螢幕解析度很高,所以需要的應用圖示也要大一些,建議是採用114x114畫素的圖示。修改圖示後,修改版本號,重新打包APK,重新生成BAR檔案和簽名。

參考

BlackBerry官方的安卓轉制指南

排錯Trouble shooting

提示1:在應用簽名的時候,沒有任何提示,簽名程式執行卡在那裡,幾分鐘後提示如下Error:Server returned HTTP response code: 502 for URL:http://www.rim.net/Websigner/servlet/RDK-Waterloo。

這可能是出國網路暫時故障,或者是簽名伺服器暫時故障,稍等個把小時再去嘗試。

提示2:一個金鑰,對一個apk檔案只能做一次簽名。如果再次簽名,將提示

Error: Code signing request failed becausethis version of the application or package has been previously signed. Pleaseincrement the version(s) and try signing again.

解決辦法:Android開發工具中開啟AndroidManifest.xml檔案,找到versionCode標籤,修改之,重新build一個APK檔案。參考

提示3:如果需要使用多臺機器用一個金鑰進行簽名,一個金鑰可以被多人在多臺機器上同時使用。

解決辦法:參考簽名金鑰備份方法進行備份和遷移。

提示4:目前Android應用轉制,貌似暫時不支援中文檔名,中文應用名稱(轉制應用安裝後,標題亂碼)。

解決辦法1:Android開發工具中,修改應用名稱為英文,升級版本,重新生成APK檔案並轉制。

提示5:安裝應用到手機上,提示result::failure881 required signatures missing (AUTHOR)

解決辦法:

一般是應用簽名問題,需要重新簽名;blackberry-signer-cskpass 簽名的時候,去掉最後一個引數RDK,重新簽名;在手機上安裝debugtoken,然後嘗試安裝執行這個應用。

2013年4月9日更新