生成密匙
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
上面的?my-release-key?這個(gè)名字可以自己取名,同時(shí)my-key-alias?也是自己取名,其中第二個(gè)名稱?alias?參數(shù)后邊的別名,在后面你在為應(yīng)用簽名的時(shí)候需要用到,所以暫時(shí)記錄一下這個(gè)別名。
上面的命令我們需要輸入密鑰庫(kù)?(keystore)?密碼和對(duì)應(yīng)秘鑰的密碼,然后設(shè)置名字,組織,國(guó)家,省份相關(guān)的信息,最后會(huì)生成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下運(yùn)行g(shù)radlewassembleRelease
gradlewassembleRelease運(yùn)行后開始打包
最終放在:
D:\reactNative\MyProject\android\app\build\outputs\apk下的app-release.apk是打包好的APK
第二次打包注意
第二次打包的時(shí)候要?jiǎng)h除掉...\android\app\src\main\res\asserts下面的兩個(gè)文件
在模擬器運(yùn)行
react-native start
另開一個(gè)服務(wù)react-native run-android (這里要注意刪除掉\android\app\src\main\res\asserts下的文件 因?yàn)樗麄兪悄闵洗未虬a(chǎn)生的 對(duì)你來說 能用到就只有APK 所以刪除掉無所謂 第二次打包 還會(huì)生成這些文件)