生成密匙
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
上面的?my-release-key?這個名字可以自己取名,同時my-key-alias?也是自己取名,其中第二個名稱?alias?參數(shù)后邊的別名,在后面你在為應用簽名的時候需要用到,所以暫時記錄一下這個別名。
上面的命令我們需要輸入密鑰庫?(keystore)?密碼和對應秘鑰的密碼,然后設置名字,組織,國家,省份相關的信息,最后會生成my?-release-key.keystore?的簽名文件。
最后生成:my-release-key.keystor?e文件在主目錄上
然后把文件放在D:\reactNative\MyProject\android\app 路徑下
Gradle配置
D:\reactNative\MyProject\android下的gradle.properties
gradle.properties 添加如下信息? 原來的信息不用管
android.useDeprecatedNdk=true
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456
D:\reactNative\MyProject\android\app下的build.gradle
build.gradle添加signingConfigs 在buildTypes 里面添加signingConfig signingConfigs.release
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 {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
開始打包
D:\reactNative\MyProject\android下運行gradlewassembleRelease
gradlewassembleRelease運行后開始打包
最終放在:
D:\reactNative\MyProject\android\app\build\outputs\apk下的app-release.apk是打包好的APK
第二次打包注意
第二次打包的時候要刪除掉...\android\app\src\main\res\asserts下面的兩個文件
在模擬器運行
react-native start
另開一個服務react-native run-android (這里要注意刪除掉\android\app\src\main\res\asserts下的文件 因為他們是你上次打包產(chǎn)生的 對你來說 能用到就只有APK 所以刪除掉無所謂 第二次打包 還會生成這些文件)