1. 程式人生 > >React-native windows 安卓 打包

React-native windows 安卓 打包

1.注意:生成簽名金鑰過程中不要用中文

官網連結:

http://reactnative.cn/docs/0.44/signed-apk-android.html#content

2.生成一個簽名金鑰

你可以用keytool命令生成一個私有金鑰。在Windows上keytool命令放在JDK的bin目錄中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令列中先進入那個目錄才能執行此命令。

$ keytool -genkey -v -keystore my-release-key.keystore -aliasmy-key-alias -keyalg RSA -keysize

2048 -validity10000

這條命令會要求你輸入金鑰庫(keystore)和對應金鑰的密碼,然後設定一些發行相關的資訊。最後它會生成一個叫做my-release-key.keystore的金鑰庫檔案。

在執行上面這條語句之後,金鑰庫裡應該已經生成了一個單獨的金鑰,有效期為10000天。--alias引數後面的別名是你將來為應用簽名時所需要用到的,所以記得記錄這個別名。

注意:請記得妥善地保管好你的金鑰庫檔案,不要上傳到版本庫或者其它的地方。

2.設定gradle變數

設定gradle變數

1. my-release-key.keystore檔案放到你工程中的android/app資料夾下。

2. 編輯

~/.gradle/gradle.properties(沒有這個檔案你就建立一個),新增如下的程式碼(注意把其中的****替換為相應密碼)

注意:~表示使用者目錄,比如windows上可能是C:\Users\使用者名稱,而mac上可能是/Users/使用者名稱

MYAPP_RELEASE_STORE_FILE=my-release-key.keystoreMYAPP_RELEASE_KEY_ALIAS=my-key-aliasMYAPP_RELEASE_STORE_PASSWORD=*****MYAPP_RELEASE_KEY_PASSWORD=*****

上面的這些會作為全域性的gradle變數,我們在後面的步驟中可以用來給應用簽名。

關於金鑰庫的注意事項:

一旦你在Play Store釋出了你的應用,如果想修改簽名,就必須用一個不同的包名來重新發布你的應用(這樣也會丟失所有的下載數和評分)。所以請務必備份好你的金鑰庫和密碼。

提示:如果你不想以明文方式儲存密碼,同時你使用的是macOS系統,那麼你也可以把密碼儲存到鑰匙串(Keychain)中。這樣一來你就可以省略掉上面配置中的後兩行(即MYAPP_RELEASE_STORE_PASSWORD和MYAPP_RELEASE_KEY_PASSWORD)。

3添加簽名到專案的gradle配置檔案

編輯你專案目錄下的android/app/build.gradle,新增如下的簽名配置:

...

android {

    ...

    defaultConfig { ... }

    signingConfigs {

        release {

            storeFile file(MYAPP_RELEASE_STORE_FILE)

            storePassword MYAPP_RELEASE_STORE_PASSWORD

            keyAlias MYAPP_RELEASE_KEY_ALIAS

            keyPassword MYAPP_RELEASE_KEY_PASSWORD

        }

    }

    buildTypes {

        release {

            ...

            signingConfig signingConfigs.release

        }

    }

}

...

4.生成發行APK包

只需在終端中執行以下命令:

$ cd android && ./gradlew assembleRelease

譯註:cd android表示進入android目錄(如果你已經在android目錄中了那就不用輸入了)。./gradlew assembleReleasemacOS和Linux系統中表示執行當前目錄下的名為gradlew的指令碼檔案,執行引數為assembleRelease,注意這個./不可省略;而在windows命令列下則需要去掉./

Gradle的assembleRelease引數會把所有用到的JavaScript程式碼都打包到一起,然後內建到APK包中。如果你想調整下這個行為(比如js程式碼以及靜態資源打包的預設檔名或是目錄結構等),可以看看android/app/build.gradle檔案,然後琢磨下應該怎麼修改以滿足你的需求。

生成的APK檔案位於android/app/build/outputs/apk/app-release.apk,它已經可以用來發布了。

5.測試應用的發行版本

在把發行版本提交到Play Store之前,你應該做一次最終測試。輸入以下命令可以在裝置上安裝發行版本:

$ cd android && ./gradlew installRelease

注意installRelease引數只能在你完成了上面的簽名配置之後才可以使用。你現在可以關掉執行中的packager了,因為你所有的程式碼和框架依賴已經都被打包到apk包中,可以離線運行了。

debug和release版本間來回切換安裝時可能會報錯簽名不匹配,此時需要先解除安裝前一個版本再嘗試安裝。

6.啟用Proguard程式碼混淆來縮小APK檔案的大小(可選)

Proguard是一個Java位元組碼混淆壓縮工具,它可以移除掉React Native Java(和它的依賴庫中)中沒有被使用到的部分,最終有效的減少APK的大小。

重要:啟用Proguard之後,你必須再次全面地測試你的應用。Proguard有時候需要為你引入的每個原生庫做一些額外的配置。參見app/proguard-rules.pro檔案。

要啟用Proguard,設定minifyEnabled選項為true

/**

 * 在release發行版中啟用Proguard來減小 to shrink the Java bytecode in release builds.

 */def enableProguardInReleaseBuilds =true

相關推薦

React-native windows 打包

1.注意:生成簽名金鑰過程中不要用中文 官網連結: http://reactnative.cn/docs/0.44/signed-apk-android.html#content 2.生成一個簽名金

react-native-echarts 打包後,圖表不顯示

1、相容手機端 <meta name="viewport" content="width=device-width, initial-scale=1"> 2、解決android打包後不顯示 複製檔案tpl.html(路徑: node_mod

React-Native原生的混合開發

寫在前面 目前很多大廠APP(如淘寶、餓了麼、美團等等)並不是純原生Android&IOS,也不是純JS開發,而是Hybird APP開發,混合型優勢很多:比如熱更新,保證在一些類似雙十一的活動到來時能夠快速上線活動頁面,使用者不必再去更新APP。再來有效地減小了安裝包的體積

React Native學習手機上的返回鍵BackAndroid

使用 React Native開發,iOS搞完,開始適配安卓,由於木有接觸過安卓,所以碰到了很多問題,第一個問題,安卓的返回鍵BackAndroid問題,我寫了一個工具類,來搞定,其中用到了java原

react native 修改Switch顏色樣式

      最近在使用Switch控制元件的時候。官方文件是這樣的 <Switch value={(this.state && this.state.switchValue) || false} onVal

react-native-wechat點選登入沒有回撥問題

專案中難免會用到第三方登入和分享,本專案中微信登入使用的第三方元件:# react-native-wechat 使用 yarn a

win7下react-native打包踩坑

util 根目錄 2.x exce com tco 解決 研究 sig 都說工具使我們使用更加方便,然而最近研究React-native打包還有webpack這些工具,真是一把心酸一把淚。感覺這些開發工具對window系統十分不友好,外國佬都是都在用mac系統的土豪。 言歸

react-native打包過程

本文使用的react-native版本為0.55 1.進入工程目錄 ,生成打包的簽名祕鑰 keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysi

react native 打包--mac環境,如果打包不成功可註意下my-release-key.keystore的位置關系(絕對路徑)

項目 雙引號 添加 star ica local strong pre mos // my-release-key.keystore和my-key-alias都是可修改的名稱 1.生成簽名密鑰(keytool -genkey -v -keystore my-release

react native windows打包apk流程

自己的 apk min 代碼 技術 環境 store 顯示 str 1、生成一個簽名密碼 keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysi

Cocos2d-x: 打包問題 “ GoogleAPIs:21 不是一個有效的 Android 目標平臺 ”

一個 androi 發生 cocos2 api clip strong googl color   問題:GoogleAPIs:21 不是一個有效的 Android 目標平臺。   產生原因:這是由於使用Eclipse運行Android項目後, 項目的bulid Targe

jenkins 打包生成二維碼下載

java ken code .cn qrcode cau pass textarea buffers 先來張圖看看吧 構思 jenkins gradle 打包apk文件,python myqr 模塊生成二維碼 放入nginx 訪問圖片的路徑,apk安裝包放在

react-native windows系統 紅屏報assets缺失 500錯誤

包管理器 tput asset code div 兼容 執行 較差 pla 指定版本,react-native是facebook用mac系統開發的,windows系統兼容較差,新版本更是問題很多, 相對老版本更加穩定 react-native init demo -

unity打包——說明——轉載

隨著Unity、cocos2dx等優秀跨平臺遊戲引擎的出現,開發者可以把自己從繁重的Android、iOS原生臺開發中解放出來,把精力放在遊戲的創作。原來做一款跨平臺的遊戲可能需要開發者懂得Java、Objective-C、C#甚至是C、C++,現在藉助Unity我們開發者只需要懂得很少的原生應用開

【UE4】 第02講 打包

    安卓打包這個簡直是UE4開發的終極魔鬼問題,原因就是完全不清楚Epic這一部分是怎麼實現的,所以根本沒什麼辦法理解問題產生的根源在哪裡。到目前為止已經兩次重灌Win8.1 64位 企業版,VS2015 32位 企業版,原來的Win7 64位 旗艦版,VS2013 專業

CocosCreator之KUOKUO分享打包成功過程(3)

很多小夥伴卡在了安卓打包的過程,被折磨的欲仙欲死,面對小夥伴的一些問題,有時候我也感覺莫名其妙的,console.log(滑稽)。 今天我把自己成功打包的過程詳細滴發一遍,供大家參考。O(∩_∩)O~~ 電腦Windows10,64位 CocosCreator引擎版本v2.0.5 然

UE4 打包紋理格式選擇

原文:https://docs.unrealengine.com/en-us/Platforms/Android/Reference 此處擷取翻譯: Android紋理格式 並非所有Android裝置都是相同的。特別是,有4種不同的渲染硬體。它們各自支援不同格式的壓

打包名稱

開始自定義打包名會報錯 因為版本問題 3.0之後在build.gradled android {} 中新增//配置自定義打包名稱applicationVariants.all { variant -> variant.outputs.all { def fileName

React Native釋出APP之打包iOS應用

瞭解更多,可學習《React Native視訊教程》 ,或關注我的GitHub和加入: React Native學習交流群 用React Native開發好APP之後,如何將APP釋出以供使用者使用呢?一款APP的釋出流程無外乎:簽名打包—>釋出到各s

UE4 縮小打包體積(翻譯自官方文件)

減少APK包大小 無論您的UE4專案針對哪種型別的Android裝置,將Android應用程式包(APK)的大小減小到Google Play商店的50MB限制都可能具有挑戰性。在以下指南中,我