<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # # 轉載請標明出處: [http://blog.csdn.net/developer_jiangqq/article/details/50525976](http://blog.csdn.net/developer_jiangqq/article/details/50525976) 本文出自:[【江清清的博客】](http://blog.csdn.net/developer_jiangqq) # (一)前言??????? ????????【好消息】個人網站已經上線運行,后面博客以及技術干貨等精彩文章會同步更新,請大家關注收藏:[http://www.lcode.org](http://www.lcode.org/)? ? ? ? ?前幾節課程我們對于React Native的一些基礎配置,開發工具以及調試,Android項目移植做了相關講解,今天一起來學習一下另外一個比較重要的知識點,就是React Native項目簽名打包。???? ????????? 剛創建的React Native技術交流群(282693535),歡迎各位大牛,React Native技術愛好者加入交流!同時博客左側歡迎微信掃描關注訂閱號,移動技術干貨,精彩文章技術推送! 在我們的React NativeFor Android應用開發完成之后,那么就需要進行發布上傳應用市場了,在上傳之后,那么有一個很重要的步驟就是簽名打包。下面我們來詳細看一下怎么樣進行簽名打包React Native應用。具體關于Android的簽名文件生成([點擊進入-注意翻墻](https://developer.android.com/tools/publishing/app-signing.html)) # (二)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的簽名文件。 具體命令截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfb24091.jpg) 現在我們去用戶默認目錄下面會生成my-release-key.keystore文件。具體截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfb49ca8.jpg) ?????? 2.2.Android Studio IDE進行生成秘鑰文件 個人比較傾向于這一種方法,首先是圖形界面的,而且少了命令行書寫的問題,而且以前我記得在使用Eclipse開發Android的時候也一直使用這種方式,下面我們來看一下生成簽名的具體步驟: 首先打開AndroidStudio菜單選擇build->Generate Signed APK 在打開的界面點擊Next,會彈出下面的界面 ![](https://box.kancloud.cn/2016-02-29_56d3fbfb5e92e.jpg) ???????? 然后點擊create new在彈出的界面中選擇填寫秘鑰存放的位置,名稱,密碼。同樣還要寫別名的名字,證書的所有者,國家,組織以及城市相關信息。 ![](https://box.kancloud.cn/2016-02-29_56d3fbfb71d43.jpg) 點擊OK,會默認填寫上創建好的簽名的信息, ![](https://box.kancloud.cn/2016-02-29_56d3fbfb8dcdb.jpg) 最后點擊finish會生成簽名秘鑰,不過大家請注意看這邊生成的秘鑰和第一個命令行方法的秘鑰的后綴不太一樣的,這邊是以jks結尾的,不過也沒問題哦~也是同樣可以簽名的。 ![](https://box.kancloud.cn/2016-02-29_56d3fbfba8772.jpg) ????? 以上兩種方式已經給大家演示了,打包簽名的方法了,下面我們正式來進行配置打包生成APK了。 # (三)Gradle配置 ??????? 3.1.Gradle配置 ???????????? ①.首先我們要把剛剛生成的簽名文件復制到項目android/app文件夾下面(這邊采用AS生成簽名test.jks)。 ![](https://box.kancloud.cn/2016-02-29_56d3fbfbcab1c.jpg) 然后進行修改項目中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 } } } … ~~~ 具體實例配置截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfbe36a3.jpg) # (四)生成簽名包 ???????? 對于生成簽名包得方式我們要分兩種情況進行區分對待。第一種在項目目錄android/app下有react.gradle文件的(這個采用react-nativeinit xxproject命令生成項目詳情請看:[點擊進入第一講](http://blog.csdn.net/developer_jiangqq/article/details/50456967)) 第二種是不存在react.gradle文件,主要是通過原生Android項目移植到React Native平臺中(該生成詳情詳情請看:[點擊進入第四講](http://blog.csdn.net/developer_jiangqq/article/details/50519677))。下面這兩種方法都講一下: ??????? 4.1.對存在react.gradle文件的項目打包 命令行切到reactnative主目錄,然后運行下面的命令,請注意下面 android就是Android項目的目錄名稱 ~~~ cd android && ./gradlew assembleRelease ~~~ 這樣運行截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfc0a903.jpg) ![](https://box.kancloud.cn/2016-02-29_56d3fbfc246e2.jpg) ?????? 該命令運行結束之后,會在android/app/build/outputs/apk目錄下面生成app-release.apk該文件,然后可以使用該apk進行上線發布。 ![](https://box.kancloud.cn/2016-02-29_56d3fbfc437d6.jpg) 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/ ~~~ 具體運行截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfc5eca6.jpg) 生成該文件目錄截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfc79c41.jpg) 最后運行之前的命令,進行代碼和資源文件打包,生成的帶有簽名的apk還是在上面的目錄中。 ~~~ cd android && ./gradlew assembleRelease ~~~ # (五)運行Apk ??????? 上面的步驟我們已經完成了項目的簽名打包在對應的目錄中生成中apk文件,下面我們直接運行以下的命令進行將apk安裝到設備中,我這邊直接采用了模擬器進行測試了。 ~~~ cd android && ./gradlew installRelease ~~~ 該命令會進行安裝我們的apk到我們的設備中,不過該不會安裝完自動打開我們的app,我們需要自己點擊啟動一下即可了。完美運行截圖如下: ![](https://box.kancloud.cn/2016-02-29_56d3fbfc8f7ca.jpg) # (六)最后總結 ????????? 今天我們主要介紹了React Native for Android項目如何創建簽名,以及打包的具體方法。大家有問題可以加一下群React Native技術交流群(282693535)或者底下進行回復一下。 ? ? ? ?尊重原創,轉載請注明:From Sky丶清([http://blog.csdn.net/developer_jiangqq](http://blog.csdn.net/developer_jiangqq)) 侵權必究! ? ? ? ?關注我的訂閱號(codedev123),每天分享移動開發技術(Android/IOS),項目管理以及博客文章!(歡迎關注,第一時間推送精彩文章) ![](https://box.kancloud.cn/2016-02-29_56d3fbf75e010.jpg) ? ? ?關注我的微博,可以獲得更多精彩內容 ? ? ??[![](https://box.kancloud.cn/2016-02-29_56d3fbf76bdef.png)](http://weibo.com/u/1855428195?s=6uyXnP)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看