【React Native開發】React Native進行簽名打包成Apk(5)

轉載請標明出處:

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) 侵權必究!

       關注我的訂閱號(codedev123),每天分享移動開發技術(Android/IOS),項目管理以及博客文章!(歡迎關注,第一時間推送精彩文章)

     關注我的微博,可以獲得更多精彩內容

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章