**for windows** \
open C:\Program Files\Microsoft\jdk-17.0.12.7-hotspot\bin in cmd as administrator \
you may have java folder inside Program Files it depends where your jdk is installed to get the location run the command
echo %JAVA_HOME%
**run the command below**
keytool -genkeypair -v -storetype PKCS12 -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
it will ask password and other details provide it and after that write yes
you can my-upload-key.keystore is there copy it and paste it to android/app
**after that go to android/gradle.properties and write add below code**
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
**then go to android/app/build.gradle and change the code**
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
**then run command in android**
gradlew assembleRelease
your app will be there android/app/build/outputs/apk/release/app-release.apk
This solution is for React-Native CLI , don't know it will work with EXPO.
first generate keystore file using in terminal go to java bin folder and then run this
keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
after that paste that generated keystore file in your android app folder
after that you have to add configuration in your gradlw.properties file
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
and also change in app/build.gradle file :
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
then
$ cd android
$ ./gradlew bundleRelease
for better guidence visit :
https://reactnative.dev/docs/signed-apk-android