ReactNative生成签名APK

ReactNative项目最终要面向市场, 生成签名的Apk应用程序, 并发布到各大市场. 官网已经提供了参考, 非常简单, 现在啰嗦几句.

1. 去掉开发模式

修改主页入口, setUseDeveloperSupport(false), 去掉开发者支持功能.

        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index.android")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(false)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();

2. Gradle

Gradle是生成Apk的工具, 配置签名和Proguard.

android {
    ...
    signingConfigs {
        release {
            storeFile file(‘key/SpringRainKey‘)
            storePassword ‘chunyu‘
            keyAlias ‘chunyu‘
            keyPassword ‘chunyu‘
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true  // Set this to true to enable Proguard
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"

        }
    }
}

设置签名signingConfigs: 存储文件(storeFile)位置, 存储密码(storePassword), key别名(keyAlias), key密码(keyPassword).

生成Release包模式.

signingConfig signingConfigs.release

启用Proguard.

minifyEnabled true

注意signingConfigs需要在buildTypes后面, 否则找不到方法.

3. Proguard内容

这个官方文档没有提到, 不配置会报错.

java.lang.NoSuchMethodError: no static or non-static method "Lcom/facebook/react/bridge/ReadableNativeArray;.getType(I)Lcom/facebook/react/bridge/ReadableType;"

proguard-rules.pro中, 保留React的所有代码, 添加在最后.

# 禁止混淆react
-keep public class com.facebook.react.** {
  public protected *;
}

4. 执行

android文件夹内执行

./gradlew installRelease

即可生成Release包, 并安装入手机, 最终包的位置.

./android/app/build/outputs/apk/app-release.apk

参考

ReactNative项目开发模式已经很成熟了, 我们可以把开发完的项目, 通过以上方式, 生成最终线上的包进行发布.

OK, Enjoy it!

时间: 2024-10-11 05:45:05

ReactNative生成签名APK的相关文章

Android——生成签名APK

1.右键项目->Android Tools -> Export ... 2.next 3.Create  指定文件夹 设置密码 4.填写相关信息 5.指定签名apk的文件夹路径 OK,打完收工,可以愉快的安装使用了!!!

android studio 学习笔记之 生成签名APK

我们知道: 在每个开发完成之后的apk都需要进行签名,这样的apk才能发布在应用市场上,签名过的apk的在签名上中信息都是有公司的相关的信息,签名的相关apk的签名的文件,在Android studio的可以直接对apk的文件签名的. 话不多说,直接上步骤: ①进行点击菜单中"Build"选项,弹出的下拉菜单中的"generate signed APK". ②进入到generate signed apk中界面框中,因第一次对apk的签名,就需要先创建签名文件钥匙,点

安卓转战React-Native之签名打包成Apk并极速多渠道打包

前言 搞安卓的开发应该知道开发好的apk都是需要上传到应用市场给用户下载的,当然有些公司的产品是不用上传到应用市场的(比如我们公司放七牛云)但是也需要放在云上面给用户下载.react-native直接run-android默认是产生一个debug的版本apk显然这是不符合开发需求的,理由很简单debug版本apk是没有进行代码混淆的这是很危险的,所以我们需要个release的版本,下面我们来详细看一下怎么样进行签名打包React Native应用并且多渠道打包. debug和release版本a

ionic生成签名的APK方法总结

ionic生成签名的apk步骤如下: 1. 在项目目录下运行 ionic build android --release 先生成一个未签名的apk 2. 在项目目录下运行 keytool -genkey -v -keystore apkname.keystore -alias apkname.keystore -keyalg RSA -validity 20000     (keytool 是工具名称,-genkey 表示执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来)     

Android Studio 生成签名的APK

打开项目以后,点击项目,选择 Build 菜单, 然后选择 Generate Signed APK. 如下图所示: 打开生成对话框: 选择 Create new... 按钮, 生成新的Key, 弹出新生成对话框: 首先选择 Key 存储的路径. 可能是有BUG, 在弹出的选择 keystore file 对话框中,需要先输入 File name, 如 ``, 文件后缀名 保持默认的 jks 不变.然后再改变保存的路径(否则输入不了名字). 最后的路径可能是这样的: E:\CODE_ALL\02_

JDK1.7签名APK异常

转:http://blog.csdn.net/sgz_china/article/details/8060315 1.这两天搞ant打apk的,到签名apk的时候发现明明签名成功,但是安装时死活提示无数字证书.同事的机器上签名后可以正常安装,但是在我机器上却不行,最后发现同事JDK版本1.6的,我是1.7的.最后在网上查了资料解决的办法,在我们签名的时候,在jarsigner命令后增加两个参数:     -digestalg SHA1     -sigalg MD5withRSA使用Ant如下:

关于keystore 签名apk

签名原理: 数字签名的原理如下所示, 灰色的 原文件.公钥.加密后的摘要 是要发送给对方的. 对方验证的过程是 用原文件生成摘要1, 同时用公钥解密 加密后的摘要 得到 摘要2, 然后对比摘要1 和 摘要2 是否相同. 我们使用keytool 生成的keystore 文件里存储了私钥和公钥信息,所以所以签名apk时 需要提供 keystore 文件.打包工具集里的jarsigner. signapk 等工具会提取其中的私钥.公钥来使用. 公钥存在CERT.RSA 证书中,存放于apk 的 MET

给未签名apk加签

1.根据keystore得到证书: sudo keytool -export -alias alianame -keystore 'keystore file' -file app.cer 2.查看证书信息: keytool -printcert -file app.cer 3.给未签名apk加签 jarsigner -tsa http://timestamp.digicert.com -verbose -keystore keystore_file -signedjar signed.apk

生成Release apk

[生成Release apk] 1.使用Java SDK中的keytool生成keystore. Java SDK一般位于:C:\Program Files\Java\jdkx.x.x_x\bin. $ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 Note: Remember to keep your keyst