轉載請標明出處:
http://blog.csdn.net/developer_jiangqq/article/details/50525976
本文出自:【江清清的博客】
(一)前言
【好消息】個人網站已經上線運行,后面博客以及技術干貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org
前幾節課程我們對於React Native的一些基礎配置,開發工具以及調試,Android項目移植做了相關講解,今天一起來學習一下另外一個比較重要的知識點,就是React Native項目簽名打包。
剛創建的React Native技術交流3群(496508742),React Native技術交流4群(458982758),請不要重復加群!歡迎各位大牛,React Native技術愛好者加入交流!同時博客左側歡迎微信掃描關注訂閱號,移動技術干貨,精彩文章技術推送!
在我們的React NativeFor Android應用開發完成之后,那么就需要進行發布上傳應用市場了,在上傳之后,那么有一個很重要的步驟就是簽名打包。下面我們來詳細看一下怎么樣進行簽名打包React Native應用。具體關於Android的簽名文件生成(點擊進入-注意翻牆)
(二)Android簽名文件生成
上面有一個Android官方的簽名生成方法的地址,大家可以進行詳情查看,不過需要翻牆哦~。我現在給大家講解兩種簽名生成的方法:①:keytool命令方式生成 ,②:AndroidStudio IDE進行生成。
2.1.keytool命令生成簽名秘鑰
我們可以命令行運行如下命令:
- keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
[注意].我這邊環境變量已經配置了,注意上面的my-release-key這個名字可以自己取名,同時my-key-alias也是自己取名,其中第二個名稱alias參數后邊的別名,在后面你在為應用簽名的時候需要用到,所以暫時記錄一下這個別名。
上面的命令我們需要輸入密鑰庫(keystore)密碼和對應秘鑰的密碼,然后設置名字,組織,國家,省份相關的信息,最后會生成my-release-key.keystore的簽名文件。
具體命令截圖如下:
現在我們去用戶默認目錄下面會生成my-release-key.keystore文件。具體截圖如下:
2.2.Android Studio IDE進行生成秘鑰文件
個人比較傾向於這一種方法,首先是圖形界面的,而且少了命令行書寫的問題,而且以前我記得在使用Eclipse開發Android的時候也一直使用這種方式,下面我們來看一下生成簽名的具體步驟:
首先打開AndroidStudio菜單選擇build->Generate Signed APK 在打開的界面點擊Next,會彈出下面的界面
然后點擊create new在彈出的界面中選擇填寫秘鑰存放的位置,名稱,密碼。同樣還要寫別名的名字,證書的所有者,國家,組織以及城市相關信息。
點擊OK,會默認填寫上創建好的簽名的信息,
最后點擊finish會生成簽名秘鑰,不過大家請注意看這邊生成的秘鑰和第一個命令行方法的秘鑰的后綴不太一樣的,這邊是以jks結尾的,不過也沒問題哦~也是同樣可以簽名的。
以上兩種方式已經給大家演示了,打包簽名的方法了,下面我們正式來進行配置打包生成APK了。
(三)Gradle配置
3.1.Gradle配置
①.首先我們要把剛剛生成的簽名文件復制到項目android/app文件夾下面(這邊采用AS生成簽名test.jks)。
然后進行修改項目中gradle.properties文件,進行添加如下的代碼(注意下面的簽名和別名的名稱和上一步放入的test.jks要一樣,下面兩項分別填寫簽名和別名的密碼)-我取的密碼為ztt12345
- MYAPP_RELEASE_STORE_FILE=test.jks
- MYAPP_RELEASE_KEY_ALIAS=test_alias
- MYAPP_RELEASE_STORE_PASSWORD=ztt12345
- MYAPP_RELEASE_KEY_PASSWORD=ztt12345
這一步我們是進行全局的gradlde進行變量化的配置,后邊我們會在后邊的步驟中給相應的應用進行簽名。
[注意].以上的簽名秘鑰請大家一定要妥善保管,因為在應用發布的時候需要的。
3.2.給應用添加簽名-配置局部應用Gradle文件
直接在工程目錄下得android/app/build.gradle中以下節點添加如下內容:
- ...
- android {
- ...
- defaultConfig { ... }
- signingConfigs {
- release {
- storeFilefile(MYAPP_RELEASE_STORE_FILE)
- storePassword MYAPP_RELEASE_STORE_PASSWORD
- keyAlias MYAPP_RELEASE_KEY_ALIAS
- keyPasswordMYAPP_RELEASE_KEY_PASSWORD
- }
- }
- buildTypes {
- release {
- ...
- signingConfigsigningConfigs.release
- }
- }
- }
- …
具體實例配置截圖如下:
(四)生成簽名包
對於生成簽名包得方式我們要分兩種情況進行區分對待。第一種在項目目錄android/app下有react.gradle文件的(這個采用react-nativeinit xxproject命令生成項目詳情請看:點擊進入第一講)
第二種是不存在react.gradle文件,主要是通過原生Android項目移植到React Native平台中(該生成詳情詳情請看:點擊進入第四講)。下面這兩種方法都講一下:
4.1.對存在react.gradle文件的項目打包
命令行切到reactnative主目錄,然后運行下面的命令,請注意下面 android就是Android項目的目錄名稱
- cd android && ./gradlew assembleRelease
這樣運行截圖如下:
該命令運行結束之后,會在android/app/build/outputs/apk目錄下面生成app-release.apk該文件,然后可以使用該apk進行上線發布。
4.2.對與不存在react.gradle文件的項目打包
這邊因為react.gradle文件不存在,主要針對第四講課程中的項目(Android原生項目移植到React Native平台)來進行舉例。
首先命令切換到該reactnative項目的主目錄,然后運行以下的命令,生成assets文件夾
- mkdir -p android/app/src/main/assets
緊接着運行以下命令,進行生成inde.android.bundle文件
- react-native bundle --platform android --dev false --entry-file index.android.js \
- --bundle-output android/app/src/main/assets/index.android.bundle \
- --assets-dest android/app/src/main/res/
具體運行截圖如下:
生成該文件目錄截圖如下:
最后運行之前的命令,進行代碼和資源文件打包,生成的帶有簽名的apk還是在上面的目錄中。
- cd android && ./gradlew assembleRelease
(五)運行Apk
上面的步驟我們已經完成了項目的簽名打包在對應的目錄中生成中apk文件,下面我們直接運行以下的命令進行將apk安裝到設備中,我這邊直接采用了模擬器進行測試了。
- cd android && ./gradlew installRelease
該命令會進行安裝我們的apk到我們的設備中,不過該不會安裝完自動打開我們的app,我們需要自己點擊啟動一下即可了。完美運行截圖如下:
(六)最后總結
今天我們主要介紹了React Native for Android項目如何創建簽名,以及打包的具體方法。大家有問題可以加一下群React Native技術交流群(282693535)或者底下進行回復一下。
尊重原創,轉載請注明:From Sky丶清(http://blog.csdn.net/developer_jiangqq) 侵權必究!
引用原文:https://blog.csdn.net/developer_jiangqq/article/details/50525976/
寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!
如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!