ReacNative---簽名打包發布Release版本的apk安裝包
一、NDK的安裝和配置: 【 先保證自己正確配置了所有的 RN 環境,(其中包含android-ndk的配置,如若沒有配置請按照以下步驟配置,否則可跳過)】
1、下載NDK,【官網鏈接:https://developer.android.google.cn/ndk/downloads】
2、安裝
2.1 打開你的SDK Manger安裝的路徑,新建一個文件 ndk-bundle

2.2然后將下載的NDK解壓出來的所有的文件都放到該文件夾下即可

3、配置環境變量
許多Android項目的編譯腳本都會通過NDK_HOME環境變量來調用NDK,因此需要手動新建系統環境變量:
| 變量名 | NDK_HOME | 變量名必須嚴格匹配 |
| 變量值 | C:\Android\ndk-bundle | 需要根據NDK實際的安裝路徑填寫 |
為了方便通過命令行啟動ndk-build,還可以在系統環境變量Path中追加%NDK_HOME%。
4、如果出現問題,做如下配置:【ndk的版本號到你安裝ndk的路徑找 C:\Android\ndk-bundle\source.properties】

二、如何發布一個apk【簽名打包官網鏈接:https://reactnative.dev/docs/signed-apk-android】
1、先保證自己正確配置了所有的 RN 環境
2、在 cmd 命令行中,運行這一句話
keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
此命令提示您輸入密鑰庫和密鑰的密碼以及密鑰的專有名稱字段(輸入的內容看不到,記得拿小本本記下來)。然后,它將密鑰庫生成為名為的文件my-upload-key.keystore。
密鑰庫包含單個密鑰,有效期為10000天。別名是您稍后在對應用程序進行簽名時將要使用的名稱,因此請記住該別名。
注意:
-
- 其中: `my-release-key.keystore` 表示你一會兒要生成的那個 簽名文件的 名稱【很重要,包找個小本本記下來】
- `-alias` 后面的東西,也很重要,需要找個小本本記下來,這個名稱可以根據自己的需求改動`my-key-alias`
- 當運行找個命令的時候,需要輸入一系列的參數,找個口令的密碼,【一定要找個小本本記下來】

3、當生成了簽名之后,這個簽名,默認保存到了自己的用戶目錄下C:\Users\Administrator\my-upload-key.keystore

4. 將你的簽名證書復制到項目根目錄 android/app目錄下:

5. 進入你的項目根目錄,編輯文件~/.gradle/gradle.properties或android/gradle.properties,在最后,添加以下內容(替換*****為正確的密鑰庫密碼,別名和密鑰密碼)
1 MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore 2 MYAPP_UPLOAD_KEY_ALIAS=my-key-alias 3 MYAPP_UPLOAD_STORE_PASSWORD=*****
4 MYAPP_UPLOAD_KEY_PASSWORD=*****

6、進入你的項目根目錄,編輯 android/app/build.gradle文件添加如下代碼:
1 ... 2 android { 3 ... 4 defaultConfig { ... } 5 signingConfigs { 6 release { 7 if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) { 8 storeFile file(MYAPP_UPLOAD_STORE_FILE) 9 storePassword MYAPP_UPLOAD_STORE_PASSWORD 10 keyAlias MYAPP_UPLOAD_KEY_ALIAS 11 keyPassword MYAPP_UPLOAD_KEY_PASSWORD 12 } 13 } 14 } 15 buildTypes { 16 release { 17 ... 18 signingConfig signingConfigs.release 19 } 20 } 21 } 22 ...

7. 進入項目根目錄下的`android`文件夾,在當前目錄打開終端,然后輸入`./gradlew assembleRelease`開始發布APK的Release版;
7.1方法一 : 輸入以下命令
./gradlew bundleRelease #---Linux系統 gradlew bundleRelease #--window系統
//以上執行完后,接着執行以下命令 開始發布APK的Release版
react-native run-android --variant=release
7.2方法二:直接輸入以下命令即可 開始發布APK的Release版
./gradlew assembleRelease #---Linux系統
gradlew assembleRelease #--window系統
8. 當發行完畢后,進入自己項目的`android\app\build\outputs\apk`目錄中,找到`app-release.apk`,這就是我們發布完畢之后的完整安裝包;
ps: 也可參考: https://blog.csdn.net/m0_37686205/article/details/103098592

