react native 生成APK
參考地址:React native Android 命令 打包apk
首先:嘗試使用模擬器測試?
這里是因為需要確認目前在電腦上的模擬器是可以正常運行的,并且,開發React native的應用程序,肯定是需要做一些本地測試的
?
第一:生成簽名密鑰
這一步的操作主要是生成需要的簽名密鑰,供android調用,生成的文件待用
在項目根目錄運行以下命令,輸入的密碼是比較簡單的1234567890
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000?
第二:設置gradle
分兩步:
第一步:配置全局的gradle變量
打開C:\Users\chenwes\應該是可以看到一個文件夾.gradle,打開后,應該也有一個文件gradle.properties,如果不存在該文件,可以手動創建,并在該文件中輸入以下內容
TEST_RELEASE_STORE_FILE=my-release-key.keystore
TEST_RELEASE_KEY_ALIAS=my-key-alias
TEST_RELEASE_STORE_PASSWORD=1234567890
TEST_RELEASE_KEY_PASSWORD=1234567890
?
第二步:給項目添加簽名
將剛才生成的簽名文件my-release-key.keystore復制至react native項目中的android\app文件夾中
并手動編輯android\app文件夾下的build.gradle文件,
... android {...defaultConfig { ... }signingConfigs {release {storeFile file (TEST_RELEASE_STORE_FILE)storePassword TEST_RELEASE_STORE_PASSWORDkeyAlias TEST_RELEASE_KEY_ALIASkeyPassword TEST_RELEASE_KEY_PASSWORD}}buildTypes {release {...signingConfig signingConfigs.release}} } ...以下是我本地修改過的build.gradle的文件
?
第三步:生成APK
第一次沒有成功,
在項目的根目錄,運行命令
cd android #如果你已經在anroid目錄,則不需要該命令gradlew assembleRelease以下這種方法適合對于,在項目的android/app下有一個react.gradle文件的情況,但我的沒有,馬上進行第二次嘗試
第二次嘗試:
因為在我的電腦中,在項目的android/app下沒有react.gradle文件,需要按以下流程來處理
1:到D:\test\TestAndroidApk\android\app\src\main,創建一個assets的空文件夾
2:打開命令窗口,定位到項目的根目錄,運行命令,運行完成后,應該可以在項目目錄下的D:\test\TestAndroidApk\android\app\src\main\assets看到兩個文件,即index.bundle和index.bundle.meta兩個文件,生成的這兩個文件,會打包至APK中。
react-native bundle --platform android --dev false --entry-file index.js? --bundle-output android/app/src/main/assets/index.android.bundle? --assets-dest android/app/src/main/res/#這里注意一下參數--entry-file index.js 因為React Native以前的版本會生成兩個文件,現在的版本0.52.0已經變成只有一個文件,這里需要注意,參考別人的文章時需要注意。
3:命令窗口進入至android目錄,運行命令
gradlew assembleRelease4:最后需要清理,運行命令
gradlew clean?
?
?
在生成APK時,如果遇到錯誤,不要慌,先仔細對一下各項參數是否都可以對應到
1:在生成簽名文件時,四個參數是否與C:\Users\chenwes\.gradle文件夾中的gradle.properties設置的四個參數是不是一致。
2:C:\Users\chenwes\.gradle文件夾中的gradle.properties設置的四個參數要與?D:\test\TestAndroidApk\android\app文件夾中的build.gradle中的signingConfigs? =》?release節點中的一致(gradle.properties設置的真實的值,且是全局的,build.gradle的是一個引用值)
3:D:\test\TestAndroidApk\android\app文件夾中的build.gradle中的buildTypes =》?release是不是加入了signingConfig signingConfigs.release
?
簡單的步驟總結:
生成APK1.生成tqstablet.keystore文件,并復制到~\tqs-tablet\android\app文件夾 keytool -genkey -v -keystore tqstablet.keystore -alias tqstablet -keyalg RSA -keysize 2048 -validity 100002.gradle全局文件(不存在則新增) C:\Users\chenwes\.gradle增加內容 TQSTABLET_RELEASE_STORE_FILE=tqstablet.keystore TQSTABLET_RELEASE_STORE_PASSWORD=****** TQSTABLET_RELEASE_KEY_ALIAS=tqstablet TQSTABLET_RELEASE_KEY_PASSWORD=******3.~\tqs-tablet\android\app\src\main創建assets空文件夾4.在根目錄執行react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ 應該會在~\tqs-tablet\android\app\src\main\assets生成index.android.bundle和index.android.bundle.meta5.在根目錄的android文件夾執行gradlew assembleRelease ~\tqs-tablet\android\app\build\outputs\apk生成APK完成6.在根目錄的android文件夾執行gradlew clean清空?
在模擬器使用生成的APK
?
?
?
轉載于:https://www.cnblogs.com/weschen/p/8358952.html
總結
以上是生活随笔為你收集整理的react native 生成APK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue_自定义指令
- 下一篇: 反射的基石——Class类