- 发布:2021-04-27 16:14
- 更新:2024-10-30 10:08
- 阅读:31802
最佳回复
安卓离线打包appkey相关问题已经更新到文档:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey?id=%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98。
官方文档少说了一步,巨坑爹。
要把之前生成的keystore文件放在app目录下
回头参考你之前创建keystore文件的指令: keytool -genkey -alias testalias(这个是keyAlias 'keystore别名') -keyalg RSA -keysize 2048 -validity 36500 -keystore sdkdemo.keystore(keystore文件名称)
然后在build.gradle(app)加这个(和defaultConfig同级):
signingConfigs {
config {t
keyAlias 'keystore别名'
keyPassword '密码'
storeFile file('keystore文件名称')
storePassword '密码'
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
一定要注意上面这里,光配了签名,没用到buildTypes里
-
注意build.gradle里面的
manifestPlaceholders = [
"apk.applicationId" : "unipush的包名",
"GETUI_APPID" : "unipush的appid",
"plus.unipush.appid" : "unipush的appid",
"plus.unipush.appkey" : "unipuish的appkey",
"plus.unipush.appsecret": "unipush的secrety"
]的要改成设置里面的一样,另外还有
applicationId "unipush的包名",全部得改2021-09-10 10:27
各位网友,我知道我为什么会一直有这个错误了,即使把上述的所有步骤都做了一遍还是会报【未配置appkey或配置错误】,是因为我自己手贱在安卓项目的manifest里的那个meta的```android
<meta-data
android:name="dcloud_appkey"
android:value="xxxxxxxxxxxxxxxxxxx" />
那个name改成了别的东西,其实是不用改的。
https://wangjinchan.blog.csdn.net/article/details/120486710
我已经把这个具体步骤和避坑写成博客了。
6***@qq.com - 清风徐来
同问,appkey 也是配置了点
-
回复 y***@lingtu.com: 参考这个https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey
2021-06-10 14:31
3.1.22还是这样
按照这4步检查都没问题
1、查看签名文件是否配置到了主APP的build.gradle。
2、查看离线项目中dcloud_control.xml文件中的appid是否与申请AppKey时的appid一致。
3、检测离线项目的包名是否申请AppKey时的包名是否一致。
4、编译完通过apk解压获取一下签名信息与申请AppKey时填写的SHA1一致。
但是还是报这个错
按照这4步检查都没问题
1、查看签名文件是否配置到了主APP的build.gradle。
signingConfigs {
config {
keyAlias 'newPt'
keyPassword '123456'
storeFile file('newPt.keystore')
storePassword '123456'
v1SigningEnabled true
v2SigningEnabled true
}
}
2、查看离线项目中dcloud_control.xml文件中的appid是否与申请AppKey时的appid一致。
dcloud_control.xml
<hbuilder>
<apps>
<app appid="UNI08CA61E" appver=""/>
</apps>
</hbuilder>
appid UNI08CA61E
3、检测离线项目的包名是否申请AppKey时的包名是否一致。
包名 io.dcloud.newPt
AppKey io.dcloud.newPt
4、编译完通过apk解压获取一下签名信息与申请AppKey时填写的SHA1一致。
<meta-data
android:name="dcloud_appkey"
android:value="7c34a572a1ac4302fad55f6c9f7e8a9d" />
hash1: B8:54:DA:CD:FB:8D:5B:42:48:85:81:37:D0:FD:D1:82:D7:6D:55:4E
但是还是报这个错
我也遇到了,配置signingConfigs后,检查一下生成appkey的sha1值是否为签名用的keystore的sha1,很可能你是用的sha1值是android studio 默认的keystore的sha1值
所有的配置完全按照官网操作 ,也保证了包名、APPKey和SHA1完全一样,也配置了signingConfigs和buildTypes,还是显示这个问题!!!
我找到问题了:原因是我把AndroidManifest.xml中meta-data标签的内容放在application节点外面去了,实际上应该在内部的:
<application>
...........
<meta-data
android:name="dcloud_appkey"
android:value="dd5a9a44c903e7b5xxxxxxxxxxxxx" />
</application>
东东东东 - 东东东东
设置了appkey,配置了signingConfigs和buildTypes,结果还是显示appkey未设置或配置错误,然后改了下defaultConfig里面的applicationId,换成了uni.的包名,就没问题了,看文档也没提示这个问题。记录一下
官方给出的纠错步骤如下:
查看签名文件是否配置到了主APP的build.gradle。
查看离线项目中dcloud_control.xml文件中的appid是否与申请AppKey时的appid一致。
检测离线项目的包名是否申请AppKey时的包名是否一致。
编译完通过apk解压获取一下签名信息与申请AppKey时填写的SHA1一致。
通过自查,发现是app的build.gradle里面离线项目的包名与申请AppKey时的包名不一致导致的,修改成与项目的Android包名一致就完美解决了。
注意⚠️:配置离线打包AppKey时,android需要填写的证书签名SHA1值其实是通过keytool命令获取的MD5值。不知道是不是DCloud得Bug!
————————————————
版权声明:本文为CSDN博主「No Silver Bullet」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunhuaqiang1/article/details/124314011
首先排查一下四点问题:
android平台 可以按一下步骤检查一下离线项目配置:
1、查看签名文件是否配置到了主APP的build.gradle。
2、查看离线项目中dcloud_control.xml文件中的appid是否与申请AppKey时的appid一致。
3、检测离线项目的包名是否申请AppKey时的包名是否一致。
4、编译完通过apk解压获取一下签名信息与申请AppKey时填写的SHA1一致。
我在打包过程中是第4点中排查到问题了。
解决方案:使用解压工具解开apk。
具体步骤:(1)将打包好的app-debug.apk文件后缀名改为app-debug.zip
(2)解压app-debug.zip拿到META-INF文件夹
(3)将META-INF放到C盘的根目录下
(4)打开cmd 运行 : keytool -printcert -file C:\META-INF\CERT.RSA即可获取SHA1,对照是否跟开发者中心的一致
(5)不一致的话将上述的SHA1拷贝到开发者中心的,重新生成appkey,再打包就可以了
如果还不太明白可以看一下我写的博客,链接的最底部!https://www.cnblogs.com/juliasgwy/p/16616774.html
极光 - FOR DEVELOPERS, BY DEVELOPERS
**还有一种情况,大家可以参考:
我们需要更新签名文件信息,但是签名文件信息更新后,appkey不会更新,需要删除配置,然后再次创建更新!!!!!!**>
清风笑 - 333
报错解决:
未配置appkey或配置错误
情况一:配置签名信息即可;
按离线打包已经看文档配置好自已的签名,即可打包出来安装正常;
按这个操作:
https://blog.csdn.net/weixin_45284208/article/details/121920418
uniapp Android 离线打包之未配置appkey或配置错误
情况二:自已已经签名的apk包,需要放android系统system/app上,使用了android系统签名工具签名,签名后apk的md5\sha1\sha256值变了导致的;
解决:
1.用keytool-importkeypair工具,把android系统的platform.x509.pem platform.pk8转为Android Studio用的test.keystore,
2.把“各平台信息”的app,删除,重新创建;填写系统android系统的签名MD5、SHA1、SHA256
3.在Android Studio,重新修改配置,重新打包验证;
android系统签名,默认账号及密码:
signingConfigs {
config {
keyAlias 'platform'
keyPassword 'android'
storeFile file('android_sys.keystore')
storePassword 'android'
v1SigningEnabled true
v2SigningEnabled true
}
}
我也遇到了这个问题,不过刚才搞好了。
首先是照着官方文档搞一遍,当然这只能搞一个大体的。
然后会出现appkey配置错误云云,此时需要确认以下几步:
1 将申请appkey的keystore复制到simpledemo的根目录下
2 添加如上的siginConfigs配置
3 检查申请官方离线打包appkey的包名与appid是否与androidmanifest.xml里面的一致:我的就检查到了报名不一致,然后在官方修正包名后会重新生成appkey(ps,生成app的md5与sha1域是反的),此时重新将此appkey填入
然后就基本没啥问题了
如果你官方和网上的方法都是试过了还是提示这个错误的话,查看一下你的appID是不是H5开头的?如果你的是H5开头的那么恭喜你,跟我遇到的坑是一样的,需要重新去开发者后台创建应用,应用类型选择 uni-app,然后把以“UNI”开头的appid替换原来的,再打包就不会报错了
ps:这个坑坑了我一天!!!
h***@163.com
打包出来 只有安卓14能用为什么,别的版本都不行
2024-03-18 16:38
DCloud_Android_zl
回复 h***@163.com: 安装包发一下
2024-03-18 17:40
h***@163.com
回复 DCloud_Android_zl: 抱歉过了这么久才回复,我怎么样给您发安装包
2024-05-23 17:14
h***@163.com
回复 DCloud_Android_zl: 1131895059@qq.com,这是我的邮箱,您看到以后可以给我发个信息,我给您发安装包
2024-05-23 17:37