android
生成秘钥
1 | keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 |
1、使用keytool命令生成证书:
-genkey
-alias my-key-alias(别名)
-keypass 123456(别名密码)
-keyalg RSA(算法)
-keysize 2048(密钥长度)
-validity 10000(有效期,天单位)
-keystore D:/keys/tomcat.keystore(指定生成证书的位置和证书名称)
-storepass 123456(获取keystore信息的密码)
这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。
设置gradle变量
把my-release-key.keystore文件放到你工程中的android/app文件夹下。
2.编辑~/.gradle/gradle. properties或../android/gradle.properties(一个是全局gradle.properties,一个是项目中的gradle.properties,大家可以根据需要进行修改) ,加入如下代码:
1 | MYAPP_RELEASE_STORE_FILE=your keystore filename |
提示:用正确的证书密码、alias以及key密码替换掉 *。
在gradle配置文件中添加签名配置
编辑 android/app/build.gradle文件添加如下代码:
1 | android { |
主要点在于signConfigs
的配置
通过rn命令生成bundle文件
1 | React-native bundle --entry-file index.Android.js --bundle-output ./android/app/src/main/assets/index.android.jsbundle --platform android --assets-dest ./android/app/src/main/res/ --dev false |
–entry-file Path to the root JS file, either absolute or relative to JS root [required] (入口文件)
–platform Either “iOS” or “Android”(平台)
–transformer Specify a custom transformer to be used (absolute path) [default: “/Users/babytree-mbp13/projects/xcodeProjects/AwesomeProject/node_modules/React-native/packager/transformer.js”]
–dev If false, warnings are disabled and the bundle is minified [default: true] (是否为开发环境, 正式环境为false, 正式环境则禁用掉warning且压缩bundle)
–prepack If true, the output bundle will use the Prepack format. [default: false]
–bridge-config File name of a a JSON export of __fbBatchedBridgeConfig. Used by Prepack. Ex. ./bridgeconfig.json
–bundle-output File name where to store the resulting bundle, ex. /tmp/groups.bundle [required]
–bundle-encoding Encoding the bundle should be written in (https://nodejs.org/api/buffer.html#buffer_buffer). [default: “utf8”]
–sourcemap-output File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map
–assets-dest Directory name where to store assets referenced in the bundle
–verbose Enables logging [default: false]
编译apk
1 | cd android && ./gradlew assembleRelease |
ios
需要使用apple开发者账号, 并生成秘钥并进行app证书签名, 步骤较复杂, 博主暂未走通, 所以就不赘述了…