react-native编译的apk不会在设备上运行

Evg*_*tin 7 android react-native

使用react-native教程进行反应(react-native 0.30):我创建的应用程序无法在Android设备上安装,这里是步骤:

  1. react-native init演示
  2. cd android
  3. gradlew assembleRelease
  4. 将unsigned apk复制到移动设备(htc m8 mini 2)

并得到结果: Application demo was not installed

基于这个类似的问题apk没有运行在移动android反应原生:Unsigned apk将无法安装在移动设备上.

但是为什么我能够运行Ionic 2制作的非侵权应用程序?

有什么问题?

Kal*_*lho 7

在Ionic 2中你运行一个调试apk,它不可能运行一个未签名的apk.

你可以做的反应是签署你的apk并运行.

第一个设置可能有点复杂,但在完成设置后很容易在需要时生成签名的apk.

您可以按照以下说明签署您的apk:

生成签名密钥

您可以使用keytool生成私有签名密钥.

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

此命令会提示您输入密钥库和密钥的密码,并提供密钥的"可分辨名称"字段.然后,它将密钥库生成为名为my-release-key.keystore的文件.

密钥库包含一个密钥,有效期为10000天.别名是您稍后在签署应用时使用的名称,因此请记住注意别名.

注意:请记住将密钥库文件保密,并且永远不要将其提交给版本控制.

设置gradle变量

  1. my-release-key.keystore文件放在android/app 项目文件夹中的目录下.
  2. 编辑文件~/.gradle/gradle.properties并添加以下内容(用正确的密钥库密码,别名和密钥密码替换*****),

MYAPP_RELEASE_STORE_FILE =我的释放,key.keystore

MYAPP_RELEASE_KEY_ALIAS =我的钥匙别名

MYAPP_RELEASE_STORE_PASSWORD =*****

MYAPP_RELEASE_KEY_PASSWORD =*****

这些将成为全局gradle变量,我们稍后可以在gradle配置中使用它来签署我们的应用程序.

有关保存密钥库的注意事项:在Play商店中发布应用程序后,如果要在任何时候更改签名密钥,则需要使用其他软件包名称重新发布应用程序(丢失所有下载和评级).所以备份你的密钥库,不要忘记密码.关于安全性的注意事项:如果您不想以明文存储密码并且正在运行OSX,则还可以将您的凭据存储在Keychain Access应用程序中.然后你可以跳过最后两行~/.gradle/gradle.properties.

将签名配置添加到应用程序的gradle配置编辑android/app/build.gradle项目文件夹中的文件并添加签名配置,

...
android {
    ...
    defaultConfig { ... }
    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 {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...
Run Code Online (Sandbox Code Playgroud)

生成发布APK

只需在终端中运行以下命令:

$ cd android && ./gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)

Gradle的assembleRelease会将运行您的应用程序所需的所有JavaScript捆绑到APK中.如果您需要更改捆绑JavaScript包和/或可绘制资源的方式(例如,如果您更改了默认文件/文件夹名称或项目的一般结构),请查看android/app/build.gradle以查看如何更新它以反映这些变化.

生成的APK可以在下面找到android/app/build/outputs/apk/app-release.apk,并且可以随时分发.

测试应用的发布版本

在将发布版本上载到Play商店之前,请确保彻底测试.使用以下方法将其安装在设备上

$ cd android && ./gradlew installRelease
Run Code Online (Sandbox Code Playgroud)

请注意,只有在您按上述方式设置签名后才能使用installRelease.

您可以终止任何正在运行的打包程序实例,所有和框架JavaScript代码都捆绑在APK的资产中.

  • 应用程序正在安装但启动后崩溃, (2认同)