01/10/2025 10:53:05
问题描述
腾讯移动推送 Vivo 渠道打包报错
问题原因
在 TPNS Vivo 插件内部,有两个配置需要使用 place holder 技术处理
<meta-data
android:name="com.vivo.push.api_key"
android:value="${VIVO_APPKEY}" />
<meta-data
android:name="com.vivo.push.app_id"
android:value="${VIVO_APPID}" />
MSDK 继承这一逻辑,但是追加了 tools:replace="android:value"
<meta-data
tools:replace="android:value"
android:name="com.vivo.push.app_id"
android:value="${VIVO_APPID}" />
<meta-data
tools:replace="android:value"
android:name="com.vivo.push.api_key"
android:value="${VIVO_APPKEY}" />
一般情况下, Gradle 会自动覆盖(replace),但是在引擎侧因打包环境问题,可能出现兼容问题
解决方案
1.检查 Gradle 配置 检查项目中的 manifestPlaceholders 配置是否正常且生效
android {
compileSdkVersion xxx
defaultConfig {
applicationId "com.tencent.itop.example"
minSdkVersion xxx
targetSdkVersion xxx
...
manifestPlaceholders = [
VIVO_APPID: '1234567',
VIVO_APPKEY: 'c1f4ef5149e0863ac3b2xxxxxxxxxx'
]
}
}
2.删除 MSDK 信鸽插件中的配置 删除 MSDK 信鸽插件中 AndroidManifest.xml 配置
<meta-data
tools:replace="android:value"
android:name="com.vivo.push.app_id"
android:value="${VIVO_APPID}" />
<meta-data
tools:replace="android:value"
android:name="com.vivo.push.api_key"
android:value="${VIVO_APPKEY}" />
注意:如果是 aar 信鸽插件,可以改后缀 .aar -> .zip,解压后操作 AndroidManifest.xml 文件,然后在压缩成 zip 文件后改回后缀为 .aar
注意事项
打包 APK 后,需要确保 APK 内的配置是正常的。如:使用 Android Studio 打开 APK,参考配置如下
Copyright © 2025 MSDK.
All rights reserved.
All rights reserved.