使用react-native教程( react-native 0.30 )进行演绎: 我创建的应用程序无法在Android设备上安装,这里是步骤:
得到了结果:Application demo was not installed
基于这个类似的问题apk didn't run on mobile android react native: 未签名的apk无法在移动设备上安装。
但为什么我能够运行Ionic 2制作的非侵权应用程序?
问题是什么?
答案 0 :(得分:6)
在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
此命令会提示您输入密钥库和密钥的密码,并提供密钥的“可分辨名称”字段。然后它将密钥库生成为名为my-release-key.keystore的文件。
密钥库包含一个密钥,有效期为10000天。别名是您稍后在签署应用时使用的名称,因此请记住注意别名。
注意:请记住将密钥库文件保密,并且永远不要将其提交给版本控制。
设置gradle变量
my-release-key.keystore
文件放在android/app
下
项目文件夹中的目录。~/.gradle/gradle.properties
并添加以下内容
(用正确的密钥库密码,别名和密钥替换*****
密码),MYAPP_RELEASE_STORE_FILE =我的离型key.keystore
MYAPP_RELEASE_KEY_ALIAS = my-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
}
}
}
...
生成发布APK
只需在终端中运行以下内容:
$ cd android && ./gradlew assembleRelease
Gradle的assembleRelease会将运行您的应用程序所需的所有JavaScript捆绑到APK中。如果您需要更改捆绑JavaScript包和/或可绘制资源的方式(例如,如果您更改了默认文件/文件夹名称或项目的一般结构),请查看android / app / build.gradle以查看如何更新它以反映这些变化。
生成的APK可以在android/app/build/outputs/apk/app-release.apk
下找到,并且可以随时发布。
测试应用的发布版本
在将发布版本上传到Play商店之前,请确保彻底测试。使用以下命令将其安装在设备上:
$ cd android && ./gradlew installRelease
请注意,只有在您按照上述说明设置了签名后才能使用installRelease。
您可以终止任何正在运行的打包程序实例,所有和框架JavaScript代码都捆绑在APK的资产中。
答案 1 :(得分:0)
@EvghenyKalkutin如果你是反应原生的初学者那么只需按照这个简单的步骤
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
choco install nodejs.install
并安装Python @使用此代码choco install python2
npm install -g react-native-cli
以启动react-native react-native init AwesomeProject
或react-native init HelloWorld
下载示例项目:)cd AwesomeProject
adb devices
adb reverse tcp:8081 tcp:8081
npm start
react-native run-android
开始您的项目,此处您的示例项目将在您的设备上运行**对于unsign apk或assembleRelease只需通过以下步骤**
只需在node.js命令提示符cd android && gradlew clean && gradlew assembleRelease
我使用的是windows os所以这些说明都适用于windows os我不知道这个代码对于mac os或linux os是一样的
我希望这个wiil可以帮助你以反应原生的方式开始。如果有任何问题只是评论它。
答案 2 :(得分:0)
WINDOWS用户 遵循这些说明....它对我有用
先决条件-您必须具有keystore file
,如果没有,请按照说明打开cmd
运行keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
,然后完成。您将有一个密钥库文件。现在,请按照以下步骤操作。
1。在Windows cd android
上,然后在项目目录编辑器终端或命令提示符中运行gradlew assembleRelease
>。
2。在此位置查找APK
android/app/build/outputs/apk/release/app-release-unsigned.apk
3。将此APK
复制到jdk安装目录的bin文件夹(我的目录为C:\Program Files\Java\jdk1.8.0_181\bin
)[基本上,在此步骤中,我们尝试转到与jarsigner
相同的目录]
4。还将您的keystore
文件复制到此(C:\Program Files\Java\jdk1.8.0_181\bin
)目录。
5。现在以管理员模式打开cmd
并运行
cd C:\Program Files\Java\jdk1.8.0_181\bin
6。现在运行
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <<your keystore file name >> <<your apk file name>> alias_name
这是您的apk,现在在cd C:\Program Files\Java\jdk1.8.0_181\bin
上找到已签名的apk。安装它,现在应该安装。