Kar*_*eya 13 mobile android react-native signed-apk
我正在尝试生成一个Signed APK
for react本机项目。按照android的步骤操作,并对本机文档做出反应。
我的Build.gradle
档案
android {
compileSdkVersion 23
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.appmobile"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
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
// minifyEnabled enableProguardInReleaseBuilds
// proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
// buildTypes {
// release {
// minifyEnabled enableProguardInReleaseBuilds
// proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
// }
// }
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
我已将密钥库文件放在Android/app
目录中
我的 grade.properties
android.useDeprecatedNdk=true
MYAPP_RELEASE_STORE_FILE=sampleReleasekeyStore.jks
MYAPP_RELEASE_KEY_ALIAS=*****
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
Run Code Online (Sandbox Code Playgroud)
执行时cd android && ./gradlew assembleRelease
。
它的构建失败
任务':app:validateSigningRelease'的执行失败。找不到用于签名配置“发布”的密钥库文件/Users/username/Projects/appMobile/android/app/sampleReleasekeyStore.jks。
我正在使用Mac环境。请让我知道我要去哪里了。
Ale*_*Pad 13
这种情况下的问题是路径。正如您上面已经提到的,在应用程序文件夹中输入密钥。然后在您的 .properties 中,不要命名整个路径,因为您已经在您的项目/应用程序中..您只需要输入密钥的名称:
storePassword=my_password
keyPassword=my_password
keyAlias=key
storeFile=key.jks
Run Code Online (Sandbox Code Playgroud)
小智 5
它对我有用!
// 对于 Mac 用户 第 1 步命令。
keytool -genkey -v -keystore ~/ksk.jks -keyalg RSA -keysize 2048 -validity 10000 -alias ksk
Run Code Online (Sandbox Code Playgroud)
//对于Windows用户第1步命令。
keytool -genkey -v -keystore C:/Users/USER_NAME/ksk.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias ksk
Run Code Online (Sandbox Code Playgroud)
//注意:请在终端中运行上述命令。输入每个输入值,例如名字和姓氏、组织名称、密码、城市、国家/地区代码等。
//第2步。适用于 Mac 和 Windows。创建文件 key.properties “key”文件名和“properties”文件扩展名。
//注意:将其保存在您的项目 android 文件夹中。
//步骤3. 对于 Mac 和 Windows // 编辑 key.properties 文件。创建 jks 文件时,插入以下行以及终端中使用的适当值。
storePassword=storepassword
keyPassword=password
keyAlias=ksk
storeFile=C:\\Users\\USER_NAME\\Desktop\\ksk.jks
Run Code Online (Sandbox Code Playgroud)
//注意如果是Mac用户,storeFile应该是storeFile=/Users/USER_NAME/ksk.jks
// 步骤4 编辑build.gradle 文件。将以下两个块复制粘贴到 defaultConfig 块之后,替换现有的builtTypes时钟
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Run Code Online (Sandbox Code Playgroud)
//Step 5 编辑build.gradle文件 在 android { ... 之前添加以下代码块
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
Run Code Online (Sandbox Code Playgroud)
//第6步运行命令
flutter Clean
Run Code Online (Sandbox Code Playgroud)
//第7步运行命令。
flutter build appbundle --release
Run Code Online (Sandbox Code Playgroud)
//如果是AS菜单
Build > Flutter > Build App Bundle
Run Code Online (Sandbox Code Playgroud)
//现在它应该在项目目录中构建包
`build/app/output/bundle/release/app-release.aab`
Run Code Online (Sandbox Code Playgroud)
//一切顺利。
小智 2
尝试.jks
从 中删除MYAPP_RELEASE_STORE_FILE
,它对我有用。
MYAPP_RELEASE_STORE_FILE=sampleReleasekeyStore
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26611 次 |
最近记录: |