VSCode开发react-native app进行android apk打包
生成keystore密鑰
keytool -genkey -v -keystore my-test.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
輸入密鑰口令,然后確認(rèn)口令,接下來(lái)輸入必要的信息,會(huì)生成一個(gè)keystore文件,這個(gè)文件就在命令執(zhí)行的路徑
?
設(shè)置gradle的環(huán)境變量
1、把keystore文件放到你工程中的android/app文件夾下(app/assert/my-test.keystore)
2、編輯gradle.properties(沒(méi)有這個(gè)文件你就創(chuàng)建一個(gè),這個(gè)是android工程目錄下),添加如下的代碼(注意把其中的****替換為相應(yīng)密碼)
3、配置gradle環(huán)境變量
打開項(xiàng)目里面gradle-wrapper.properties,查看使用的版本
在Androidstudio設(shè)置中找到gradle的緩存路徑,然后打開wrapper/dists
打開環(huán)境變量設(shè)置,在系統(tǒng)變量增加GRADLE_HOME,路徑為:C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.5-all\2oz4ud9k3tuxjg84bbf55q0tn\gradle-6.5
在系統(tǒng)變量的path增加%GRADLE_HOME%\bin,完成環(huán)境變量設(shè)置,打開cmd輸入gradle,驗(yàn)證gradle配置是否正確,出現(xiàn)以下界面表示gradle配置正確
4、配置app的build.gradle,設(shè)置如下
signingConfigs在android下
release在buildTypes下
5、執(zhí)行以下命令:
yarn install? 下載react-native依賴的node_modules,如果執(zhí)行該命令出現(xiàn)error Couldn't find the binary git,那么刪除yarn.lock和yarn-error.log,執(zhí)行yarn cache clean,然后再執(zhí)行yarn install即可
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle?
該命令會(huì)重新編譯android/app/src/main/assets/index.android.bundle文件文件,同時(shí)會(huì)把JS代碼打包到本地,如果沒(méi)有執(zhí)行該命令,那么可能修改的js代碼沒(méi)有打包進(jìn)apk
6、通過(guò)gradlew assembleRelease命令(需要從工程目錄進(jìn)入到android目錄下執(zhí)行該命令)進(jìn)行apk打包,第一次打包時(shí)間會(huì)很長(zhǎng),打包之后的apk路徑在app\build\outputs\apk目錄下
7、如果要直接運(yùn)行到調(diào)試機(jī)器上,在工程目錄執(zhí)行react-native run-android就可以運(yùn)行android apk到設(shè)備上進(jìn)行調(diào)試,執(zhí)行react-native run-android命令調(diào)試時(shí),設(shè)備上的app需要依賴PC端的服務(wù)才能正常運(yùn)行,所以將debug包下的app單獨(dú)拿出來(lái)安裝的時(shí)候會(huì)發(fā)現(xiàn)頁(yè)面缺少資源的情況
備注:為了避免文件操作的權(quán)限問(wèn)題,可以以管理員身份打開cmd窗口,然后在cmd窗口cd到工程目錄下,再執(zhí)行打包apk的命令。
? ? ? ? ? ?如果執(zhí)行g(shù)radlew assembleRelease命令出現(xiàn)錯(cuò)誤,可以先cd到android目錄執(zhí)行g(shù)radle clean,該命令會(huì)刪除build文件夾,然后再執(zhí)行g(shù)radlew assembleRelease
? ? ? ? ??gradle assemble全量打包命令,配置的debug和release都會(huì)打包出來(lái),assembleDebug打包出來(lái)的是debug的版本,gradlew assembleRelease打包出來(lái)的是release版本
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的VSCode开发react-native app进行android apk打包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。