12/12/2024 11:37:55

TPNS 渠道说明 - 腾讯云收费版

腾讯移动推送通知:为避免华为厂商信鸽推送异常,接入方必须于 2021 年 6 月 30 日前,升级版本至 MSDK5.13(TPNS1.2.0.4)或以上版本。

本文档适用于 MSDKV5.10 及以后版本(MSDK TPNS 腾讯云收费版),区别于信鸽的免费版本。腾讯云版本与免费版本相互不兼容,升级之后需要重新申请腾讯移动推送的accessId和accessKey。MSDKV5客户端从 V5.10 版本开始集成腾讯移动推送腾讯云版本,目前腾讯云版本支持可插件化接入,但不再兼容旧版本的信鸽。

自 MSDKV5.10 开始,以区别 V5.9 及以前版本和适配腾讯移动推送腾讯云版本特性,如需要做单推操作,请关注并使用回调中的 xgTpnsToken 字段的值来做单推操作。

一、开发者平台配置

一、开发者平台配置

1.1 创建产品

登录 信鸽腾讯云页面 选择【新增产品】创建应用,详情可参考 腾讯移动推送-创建产品和应用文档

1.2 创建推送任务及推送测试方法

创建推送任务及推送测试方法,详情参考 腾讯移动推送-创建推送任务及推送测试方法文档

1.3 腾讯移动推送服务付费介绍

腾讯移动推送服务付费介绍,详情可参考 腾讯移动推送-产品定价文档
MSDK支持:MSDK助手/happyjchen/jiaganzheng
腾讯移动推送侧支持:ablecao

[info]注意:
1、2020年7月1日起,1000台设备量级以下免费试用,无需申请试用,方便随时体验和测试。
2、2020年8月3日前,试用期的日联网设备量超过1000台,会收到超量告警,如您未开通后付费计费,推送将概率性丢失。
3、2020年8月3日起,正式启动超量停服机制,即对免费试用应用增加超量停服的机制。如果您的应用已经放量,请提前开通后付费,避免因超量而停服。
4、内部客户推荐开通按量计费(后付费),并开通欠费不停服特权,即:账号欠费也不会影响推送服务(注意:必须是用腾讯云内部账号来开通后付费)。
例如:服务版本为体验版的应用,日联网设备超过1000后推送服务会被停止,付费后立即恢复(设备注册、账号和标签绑定服务不受影响)。

1.4 厂商通道抵达回执配置

国内不同厂商通道对抵达数据回执的支持程度不同, 华为、魅族通道抵达数据不能直接获取,需要开发者手动进行相应配置。详情参考 腾讯移动推送-厂商通道抵达回执获取指南

二、腾讯移动推送腾讯云版本各个服务接入点域名

二、腾讯移动推送腾讯云版本各个服务接入点域名

接口请求地址与服务接入点一一对应,请选择与您的应用服务接入点对应的请求地址。

MSDK 5.13 及之前版本,使用以下域名:

集群名称 注册 host 统计host port
广州 https://api.tpns.tencent.com https://stat.tpns.tencent.com 0
上海 https://api.tpns.sh.tencent.com https://stat.tpns.sh.tencent.com 0
香港 https://api.tpns.hk.tencent.com https://stat.tpns.hk.tencent.com 0
新加坡 https://api.tpns.sgp.tencent.com https://stat.tpns.sgp.tencent.com 0

MSDK 5.15 及之后版本,使用以下域名(注意不需要带 https:// 前缀):

集群名称 host(不区分注册和统计)
广州 tpns.tencent.com
上海 tpns.sh.tencent.com
香港 tpns.hk.tencent.com
新加坡 tpns.sgp.tencent.com

如果以上配置不做的话,TPNS SDK 默认连接广州集群(当前新申请的应用在管理端默认都是上海集群,这样管理端数据和 SDK 默认集群不匹配,推送是有问题的)

如何确认应用的集群

登录 腾讯移动推送腾讯云页面 后可以看到您的应用对应的集群

console-xg-push-group

三、Android工程配置

三、Android工程配置

3.1 AndroidManifest.xml 配置

<application>
    <!-- 应用的其它配置 -->
    <uses-library android:name="org.apache.http.legacy" android:required="false"/>
    <!-- 【必须】 腾讯移动推送默认通知 -->
    <activity
        android:name="com.tencent.android.tpush.TpnsActivity"
        android:exported="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
        <intent-filter>
            <!-- 【必须】 【注意】${applicationId} 修改为对应当前APP包名-->
            <data
                android:host="${applicationId}"
                android:scheme="tpns" />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <!-- MSDK 5.30.001 版本移除以下两个节点 -->
    <!-- 以下两个节点用于覆盖,原因:oppo渠道包未适配target api 31 -->
    <service
        android:name="com.heytap.mcssdk.PushService"
        android:exported="true"
        android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE"
        tools:node="replace" >
        <intent-filter>
            <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
        </intent-filter>
    </service>
    <service
        android:name="com.heytap.mcssdk.AppPushService"
        android:exported="true"
        android:permission="com.heytap.mcs.permission.SEND_MCS_MESSAGE"
        tools:node="replace" >
        <intent-filter>
            <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
        </intent-filter>
    </service>
    <!-- MSDK 5.30.001 版本移除以上两个节点 -->
    <!-- MSDK 5.30.001 版本新增以下两个节点 -->
    <service
        android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"
        android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
        <intent-filter>
            <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/>
        </intent-filter>
        </service>
        <service
        android:name="com.heytap.msp.push.service.DataMessageCallbackService"
        android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">
        <intent-filter>
            <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE"/>
            <action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE"/>
        </intent-filter>
    </service>
    <!-- MSDK 5.30.001 版本新增以上两个节点 -->
    <!-- 【注意】InnerTpnsActivity 配置于 MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始新增,其中 ${applicationId} 替换成 “应用包名” -->
    <activity
        android:name="com.tencent.android.tpush.InnerTpnsActivity"
        android:exported="false"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
        <intent-filter>
        <!-- 【必须】 【注意】请修改为 当前APP包名.OPEN_TPNS_ACTIVITY_V2 -->
            <action android:name="${applicationId}.OPEN_TPNS_ACTIVITY_V2" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
        <!-- 【必须】 【注意】${applicationId} 修改为对应当前APP包名-->
            <data
                android:host="${applicationId}"
                android:scheme="stpns" />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action" />
        </intent-filter>
    </activity>
    <!-- 【注意】InnerTpnsActivity 配置于 MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始新增,其中 ${applicationId} 替换成 “应用包名” -->

    <!-- 【必须】 腾讯移动推送receiver广播接收,MSDKV5.22.000(TPNS Android 1.3.1.1) 版本开始 XGPushReceiver 配置如下 -->
    <receiver
        android:name="com.tencent.android.tpush.XGPushReceiver"
        android:exported="false"
        android:process=":xg_vip_service">

        <intent-filter android:priority="0x7fffffff">

            <!-- 【必须】 信鸽SDK的内部广播 -->
            <action android:name="com.tencent.android.xg.vip.action.SDK" />
            <action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
            <action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
        </intent-filter>

    </receiver>

    <!-- 【必须】 腾讯移动推送receiver广播接收,MSDKV5.22.000(TPNS Android 1.3.1.1) 之前版本 XGPushReceiver 配置如下 -->
    <receiver
        android:name="com.tencent.android.tpush.XGPushReceiver"
        android:process=":xg_vip_service">
        <intent-filter android:priority="0x7fffffff">
            <!-- 【必须】 腾讯移动推送SDK的内部广播 -->
            <action android:name="com.tencent.android.xg.vip.action.SDK" />
            <action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
            <action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
        </intent-filter>
    </receiver>

    <!-- 【必须】 腾讯移动推送service -->
    <service
        android:name="com.tencent.android.tpush.service.XGVipPushService"
        android:persistent="true"
        android:process=":xg_vip_service"></service>

    <!-- 【必须】 通知service,其中android:name部分要改为当前包名 -->
    <service android:name="com.tencent.android.tpush.rpc.XGRemoteService"
        android:exported="false">
        <intent-filter>
            <!-- 【必须】 请修改为当前APP名包.XGVIP_PUSH_ACTION -->
            <action android:name="${applicationId}.XGVIP_PUSH_ACTION" />
        </intent-filter>
    </service>

    <!-- 【必须】 【注意】authorities修改为 包名.XGVIP_PUSH_AUTH -->
    <provider
        android:name="com.tencent.android.tpush.XGPushProvider"
        android:authorities="${applicationId}.XGVIP_PUSH_AUTH"
        android:enabled="false"
        android:exported="false"
        tools:replace="android:authorities" />

    <!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER -->
    <provider
        android:name="com.tencent.android.tpush.SettingsContentProvider"
        android:authorities="${applicationId}.TPUSH_PROVIDER" />

    <!-- 【可选】用于增强保活能力 -->
    <provider
        android:name="com.tencent.android.tpush.XGVipPushKAProvider"
        android:authorities="${applicationId}.AUTH_XGPUSH_KEEPALIVE"
        android:exported="true" />

    <!-- 【可选】APP实现的Receiver,用于接收消息透传和操作结果的回调,请根据需要添加 -->
    <!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: -->
    <receiver
        android:name="com.tencent.gcloud.msdk.push.MSDKXGPushReceiver"
        android:exported="false">
        <intent-filter>
            <!-- 接收消息透传 -->
            <action android:name="com.tencent.android.xg.vip.action.PUSH_MESSAGE" />
            <!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 -->
            <action android:name="com.tencent.android.xg.vip.action.FEEDBACK" />
        </intent-filter>
    </receiver>

    <!-- MQTT START-->
    <service android:exported="false"
        android:process=":xg_vip_service"
        android:name="com.tencent.bigdata.mqttchannel.services.MqttService" />

    <!--【注意】authorities修改为 包名.XG_SETTINGS_PROVIDER, 如demo的包名为:com.tencent.android.xg.cloud.demo -->
    <provider
        android:exported="false"
        android:name="com.tencent.tpns.baseapi.base.SettingsContentProvider"
        android:authorities="${applicationId}.XG_SETTINGS_PROVIDER" />

    <!-- MQTT END-->
    <!--XG_V2_ACCESS_ID 和 XG_V2_ACCESS_KEY 已经统一到 MSDKConfig.ini 文件配置-->

    <!--  其他安卓组件-->

    <!-- 接入点配置:如果您的应用服务接入点为广州集群,SDK 默认实现该配置。 -->
    <!--           如果您的应用服务接入点为上海、新加坡或中国香港,请按照下文步骤完成其他服务接入点域名配置,否则会导致注册推送服务失败并返回-502或1008003错误码。-->
    <meta-data
        android:name="XG_SERVER_SUFFIX"
        android:value="其他服务接入点域名" />
    <!-- 其他服务接入点域名如下: -->
    <!--           上海:tpns.sh.tencent.com   -->
    <!--           新加坡:tpns.sgp.tencent.com    -->
    <!--           中国香港:tpns.hk.tencent.com    -->

    <!-- <meta-data -->
    <!-- android:name="XG_GUID_SERVER" -->
    <!-- android:value="${XG_GUID_SERVER}" /> -->
    <!-- <meta-data -->
    <!-- android:name="XG_STAT_SERVER" -->
    <!-- android:value="${XG_STAT_SERVER}" /> -->
    <!-- <meta-data -->
    <!-- android:name="XG_LOG_SERVER" -->
    <!-- android:value="${XG_LOG_SERVER}" /> -->


    <!-- 如果未做以下配置,在【旧版信鸽】和【腾讯移动推送】两个平台上同时推送时,可能会出现重复消息。
如果您的应用确定不再使用【旧版信鸽】进行推送,可忽略配置。-->
    <meta-data
        android:name="XG_OLD_ACCESS_ID"
        android:value="xxxxxxxxx" />

    <!-- huawei appid 配置-->
    <meta-data tools:replace="android:value"
        android:name="com.huawei.hms.client.appid"
        android:value="{HUAWEI_APPID}" />

</application>

<!-- 【必须】 腾讯移动推送SDK5.0版本所需权限 -->
<permission
    android:name="${applicationId}.permission.XGPUSH_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.XGPUSH_RECEIVE" />

<!-- 【必须】 腾讯移动推送SDK所需权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<!-- 【常用】 腾讯移动推送SDK所需权限 -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" /> <!-- 华为自定义权限 -->
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" /> <!-- VIVO 自定义权限 -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />

[info] 未使用 Gradle 编译的情况${applicationId} 需要替换为游戏的包名

3.2 渠道信息配置

在工程的 assets/MSDKConfig.ini 文件中添加以下配置

[TPNS 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = XG
[TPNS 渠道配置]
# 腾讯移动推送接入点配置,需替换为您的应用对应的接入点,删除该配置则默认 TPNS SDK 使用广州接入点
XG_HOST = tpns.sh.tencent.com
# 仅在 MSDK5.13 及之前版本需要以下三个配置
XG_PORT = 0
XG_STAT_HOST = https://stat.tpns.sh.tencent.com
XG_STAT_PORT = 0
# 仅在 MSDK5.13 及之前版本需要以上三个配置
# TPNS Android AccessId AccessKey配置
XG_ACCESS_ID_ANDROID = {YOUR_XG_ACCESS_ID}
XG_ACCESS_KEY_ANDROID = {YOUR_XG_ACCESS_KEY}
# TPNS 是否开启厂商通道
XG_OTHER_ENABLE = 1
# TPNS XIAOMI 厂商渠道配置
XG_XIAOMI_ENABLE = 1
XG_XIAOMI_APP_ID = {YOUR_XG_XIAOMI_APP_ID}
XG_XIAOMI_APP_KEY = {YOUR_XG_XIAOMI_APP_KEY}
# TPNS HUAWEI 厂商渠道配置
XG_HUAWEI_ENABLE = 1
# TPNS 魅族 厂商渠道配置
XG_FLYME_ENABLE = 1
XG_FLYME_APP_ID = {YOUR_XG_FLYME_APP_ID}
XG_FLYME_APP_KEY = {YOUR_XG_FLYME_APP_KEY}
# TPNS OPPO 厂商渠道配置
XG_OPPO_ENABLE = 1 
# 注意这里填入的是 Oppo 的 AppKey,不是 AppId 
XG_OPPO_APP_ID = {YOUR_XG_OPPO_APP_KEY}
# 注意这里填入的是 Oppo 的 AppSecret,不是 AppKey 
XG_OPPO_APP_KEY = {YOUR_XG_OPPO_APP_SECRET}

[info]注意:
1、{MSDK_DEBUG} 1 表示打开调试模式,0 表示关闭调试模式
2、{MSDK_DEBUG_CHANNEL} 此开关设置为 XG,表示开启 XG 调试,仅当{MSDK_DEBUG}为1时,此开关生效,在同一配置文件中
3、腾讯云版本升级后,支持华为、小米、魅族和OPPO的厂商通道。业务需要自行申请各个通道的app id和app key,并将相应的结果填到腾讯移动推送腾讯云版本的管理端和客户端 ini 配置。开通不同厂商推送通道要求不一致,以下厂商需要开发者额外在厂商开放平台进行配置:
华为推送通道的开通步骤,详情参考 腾讯移动推送-在华为推送平台配置应用
小米推送通道的开通,需要在小米开放平台开启应用消息推送服务,详情参考 腾讯移动推送-小米通道接入操作步骤
4、腾讯移动推送接入点配置,广州域名为 https://api.tpns.tencent.com
5、MSDK 5.15 及之后版本,TPNS 接入域名有改动,请参考 TPNS 接入点域名,同时删除三个配置:XG_PORT、XG_STAT_HOST、XG_STAT_PORT
6、MSDK 5.23.002 版本开始,去除了华为、小米、vivo 厂商渠道;MSDK 5.23.003 版本开始,去除了魅族厂商渠道。
7、MSDK 5.30.000 版本开始,恢复厂商推送渠道。

四、 iOS 工程配置

四、iOS 工程配置

4.1 Xcode 工程配置文件 info.plist

在工程配置和后台模式中打开推送,如下图

信鸽工程配置

4.2 系统库依赖

  • XGMTACloud.framework
  • CoreTelephony.framework
  • SystemConfiguration.framework
  • UserNotifications.framework (Status 修改为: Optional)
  • libXG-SDK-Cloud.a
  • libz.tbd
  • CoreData.framework
  • CFNetwork.framework
  • libc++.tbd

4.3 渠道信息配置

# TPNS iOS AccessId AccessKey配置
XG_ACCESS_ID_IOS = {YOUR_XG_ACCESS_ID}
XG_ACCESS_KEY_IOS = {YOUR_XG_ACCESS_KEY}
# MSDK 5.13 版本,上海集群需要将 XG_HOST 改成 https://api.tpns.sh.tencent.com
# MSDK 5.15 版本开始,腾讯移动推送接入点配置,需替换为您的应用对应的接入点,删除该配置则默认 TPNS SDK 使用广州接入点
XG_HOST = tpns.sh.tencent.com
# 仅在 MSDK5.13 及之前版本需要以下三个("XG_PORT"、“XG_STAT_HOST”、“XG_STAT_PORT”)配置
# 如果未做以下配置,在【旧版信鸽】和【腾讯移动推送】两个平台上同时推送时,可能会出现重复消息。
# 如果您的应用确定不再使用【旧版信鸽】进行推送,可忽略配置。
XG_PORT = 0
XG_STAT_HOST = https://stat.tpns.sh.tencent.com
XG_STAT_PORT = 0
# 如果您使用MSDK5.18以及之后的版本,可忽略“XG_FREE_ACCESS_ID_IOS”配置
XG_FREE_ACCESS_ID_IOS = {YOUR_OLD_XG_ACCESS_ID_IOS}
# TPNS iOS 前台推送开关,默认关闭
XG_SHOW_FOREGROUND_ALERT = 0

[info]注意:
1、MSDK 5.15 及之后版本,TPNS 接入域名有改动,请参考 TPNS 接入点域名,同时删除三个配置:XG_PORT、XG_STAT_HOST、XG_STAT_PORT

2、MSDK 5.13 版本,腾讯移动推送接入点配置,广州域名为 https://api.tpns.tencent.com 。上海集群需要将 XG_HOST 改成 https://api.tpns.sh.tencent.com 。

4.4 通知服务扩展插件配置(统计抵达必备插件)

[info] MSDK 仅携带 TPNS 扩展库,需要游戏业务集成接入,具体接入请参考 TPNS 指引文档:通知服务扩展的使用说明,接口人:腾讯云助手(cloud IT support)。

1)简介

为了精准统计消息抵达率和接收富媒体消息,TPNS 提供了 Service Extension 接口,可供客户端调用,从而可以监听消息的到达和接收富媒体消息,您可以按以下指引使用此功能。

集成此插件的统计效果:

未集成此插件的统计效果:

2)TPNS 统计上报接口

报推送消息回执,此接口的目的是统计推送消息是否抵达终端。

/**
 @brief 腾讯移动推送处理抵达到终端的消息,即消息回执

 @param request 推送请求
 @param appID 腾讯移动推送应用ID
 @param appKey 腾讯移动推送应用Key
 @param handler 处理消息的回调,回调方法中处理关联的富媒体文件
 */
- (void)handleNotificationRequest:(nonnull UNNotificationRequest *)request appID:(uint32_t)appID appKey:(nonnull NSString *)appKey contentHandler:(nullable void(^)( NSArray <UNNotificationAttachment *>* _Nullable attachments,  NSError * _Nullable error))handler;

3)参数说明

  • request:推送请求。
  • appID:腾讯移动推送应用 ID。
  • handler:处理消息的回执,回调方法中处理关联的富媒体文件。

4)使用说明

为了使用 extension SDK,操作步骤如下:

创建通知拓展 Target:

1、在 XCode 菜单栏,选择 File > New > Target。

2、进入 Target 页面,选择 Notification Service Extension, 单击【Next】。

3、输入 Product Name,单击【Finish】。

4、配置 Target,添加依赖库文件:libXGExtension.a, libz.tbd, libsqlite3.tbd。

5、调用 TPNS 统计上报接口,示例代码如下:

说明:如果您的应用不是广州集群,请按照示例代码配置对应集群的统计域名。

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];
    ///上海集群域名配置
    //[XGExtension defaultManager].reportHost = @"https://stat.tpns.sh.tencent.com";
    ///香港集群域名配置
    //[XGExtension defaultManager].reportHost = @"https://stat.tpns.hk.tencent.com";
    /// 新加坡集群域名配置
    //[XGExtension defaultManager].reportHost = @"https://stat.tpns.sgp.tencent.com";
    [[XGExtension defaultManager] handleNotificationRequest:request appID:<#appid#> appKey:<#appkey#>  contentHandler:^(NSArray<UNNotificationAttachment *> * _Nullable attachments, NSError * _Nullable error) {
        self.bestAttemptContent.attachments = attachments;
        self.contentHandler(self.bestAttemptContent);
    }];
}
五、常见问题

五、常见问题

5.1 MSDK 腾讯移动推送异常排查步骤

  1. 检查 AccessID 和 AccessKey 配置( MSDKConfig.ini 文件)
  2. 检查 iOS 证书配置 或者 Android 配置
  3. 切忌重签名后安装测试
  4. 确认测试通过 腾讯移动推送管理端 还是 服务器调用腾讯移动推送接口 测试
  5. 在 Xcode 8 & iOS 10 中联调,需要开启 Push Capability
  6. 调用 MSDKPush 接口注册推送,并非 XGPush 原生接口

5.2 在海外接入点下,小米厂商渠道推送无法收到

按腾讯移动推送侧回复,海外接入点下,为了做数据合规,需要使用海外发行的小米设备进行测试,国内发行的小米设备只能在国内接入点下接收到推送。详情可咨询 @信鸽推送助手。

5.3 iOS 下注册时,报 APNS 请求 token 失败的错误,导致操作终止

此问题现象是由于 APNs 服务不稳定导致的,可尝试通过以下方式解决:

  1. 给手机插入 SIM 卡后使用4G网络测试。
  2. 卸载重装、重启 App、关机重启后测试。
  3. 打生产环境的包测试。
  4. 换别的 iOS 13 系统的手机测试 。

详情参考:iOS13 开发环境下,注册偶现不返回 DeviceToken?

5.4 在 UE4.23 及以上版本,编译 Android APK 报 minSdkVersion 设置过小的问题

  1. MSDKXG 在 V5.12 版本升级了华为厂商渠道的库依赖

  2. MSDKXG 的 AndroidManifest.xml 文件已经添加了如下配置来解决这个问题

         <uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks,
                                         com.huawei.android.hms.push,
                                         com.huawei.android.hms.openid,
                                         com.huawei.android.hms.base,
                                         com.huawei.hms.base.availableupdate,
                                         com.huawei.hms.stats,
                                         com.huawei.hms.base.ui,
                                         com.huawei.hms.base.device,
                                         com.huawei.hms.log,
                                         com.huawei.agconnect.core"/>
    
  3. 但是在 UE4.23 上这个配置未被识别,游戏可以在项目的根 AndroidManifest.xml 或者 APL.xml 文件中去手动添加配置来解决,APL 文件参考示例(以下配置包含了华为登录渠道的依赖):
         <androidManifestUpdates>
             <addElements tag="manifest">
                 <uses-sdk tools:overrideLibrary="com.huawei.hmf.tasks,com.huawei.android.hms.hwid,com.huawei.android.hms.base,com.huawei.hms.base.availableupdate,com.huawei.hms.stats,com.huawei.hms.base.ui,com.huawei.hms.base.device,com.huawei.hms.log,com.huawei.agconnect.core,com.huawei.android.hms.push,com.huawei.android.hms.openid" tools:ignore="MultipleUsesSdk" xmlns:tools="http://schemas.android.com/tools"/>
             </addElements>
         </androidManifestUpdates>
    

5.5 iOS初始化注册只有在首次调用才有回调,注册成功之后,再次调用将没有回调。

自 MSDK5.13 版本开始,包括5.13版本
public static void RegisterPush(string channel, string account="")

注册push接口,在XG渠道,只有在第一次调用的时候才会有回调,后面的调用没有回调,以上是腾讯移动推送-SDK的设计逻辑。MSDK当前是参照腾讯移动推送建议进行处理

5.6 调用 RegisterPush 接口报错,Huawei class not found,agconnect-services.json

xg_huawei_json

  1. MSDKXG 在 V5.15 版本将华为厂商渠道的 SDK 升级到 V5 版本,该版本的华为厂商渠道需要新增华为推送配置文件

  2. 需要在工程 assets 目录下添加 agconnect-services.json 文件来解决这个问题

    华为开放平台 进入【我的项目】> 选择项目 > 【项目设置】,下载华为应用最新配置文件 agconnect-services.json 文件并 copy 到工程 assets 目录下。

    xg_huawei_json

5.7 TPNS SDK "获取应用安装列表"问题

"获取应用安装列表"问题在 TPNS SDK 的1.2.6.0版本修复

当前可以通过在 AndroidManifest.xml 文件内添加以下两个节点来规避此问题:

<provider
        tools:node="replace"
        android:name="com.tencent.android.tpush.XGPushProvider"
        android:authorities="${applicationId}.XGVIP_PUSH_AUTH"
        android:exported="false"
        android:enabled="false"/>

<meta-data
        android:name="XG_SERVICE_PULL_UP_OFF"
        android:value="true" />



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""