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_PASSWORD
            keyAlias TEST_RELEASE_KEY_ALIAS
            keyPassword 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 assembleRelease

  4:最后需要清理,運行命令

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

 

簡單的步驟總結:

生成APK

1.生成tqstablet.keystore文件,並復制到~\tqs-tablet\android\app文件夾
keytool -genkey -v -keystore tqstablet.keystore -alias tqstablet -keyalg RSA -keysize 2048 -validity 10000

2.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.meta

5.在根目錄的android文件夾執行gradlew assembleRelease
~\tqs-tablet\android\app\build\outputs\apk生成APK完成

6.在根目錄的android文件夾執行gradlew clean清空

 

在模擬器使用生成的APK

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM