You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java+Pushy库发送Live Activity推送通知失败求助

解决Pushy库发送Live Activity推送无法送达的问题

针对你用Pushy库发送Live Activity推送未成功的情况,从代码和配置层面给出以下排查点和修复方案:

  • 修正Topic格式
    Live Activity的推送Topic必须遵循{bundleID}.push-type.liveactivity格式,而非普通的bundleID。比如你的应用bundleID是com.yourcompany.yourapp,则Topic应设为com.yourcompany.yourapp.push-type.liveactivity。

  • 修复Payload时间参数
    你的payload中stale-date(1650998941)是过去的时间戳,Live Activity会直接忽略过期的更新请求。需确保stale-date设置为当前时间之后的合理时间,同时timestamp也应使用当前有效的时间戳(建议用System.currentTimeMillis()/1000获取秒级时间戳)。

  • 优化p8密钥加载方式
    原代码用getResource(fileName).getFile()加载密钥文件可能存在路径编码问题(如含特殊字符、空格的路径),建议改用流加载方式避免此类问题:

    try (InputStream keyStream = this.getClass().getResourceAsStream(fileName)) {
        if (keyStream == null) {
            throw new NotFoundException(NotFound.APNSNOTFOUND, Boolean.TRUE);
        }
        ApnsSigningKey signingKey = ApnsSigningKey.loadFromPkcs8InputStream(keyStream, teamID, keyID);
        final ApnsClient apnsClient = new ApnsClientBuilder()
                .setApnsServer(ApnsClientBuilder.DEVELOPMENT_APNS_HOST)
                .setSigningKey(signingKey)
                .build();
    }
    
  • 匹配APNS环境
    确认目标设备的环境:如果是测试设备(模拟器/开发机),使用DEVELOPMENT_APNS_HOST;如果是已上架的生产设备,需切换为ApnsClientBuilder.PRODUCTION_APNS_HOST,环境不匹配会导致推送被拒绝。

  • 检查Live Activity状态
    确保设备上对应的Live Activity处于活跃状态,如果Activity已结束、过期或被用户关闭,推送将无法显示。

  • 完善错误日志排查
    原代码未处理cause不为空的情况(如网络异常、签名错误等),建议补充异常栈打印,定位底层问题:

    sendNotificationFuture.whenComplete((response, cause) -> {
        if (cause != null) {
            cause.printStackTrace();
            apnsClient.close();
            return;
        }
        if (response.isAccepted()) {
            System.out.println("Push notification accepted by APNs gateway.");
        } else {
            System.out.println("Notification rejected by the APNs gateway: " + response.getRejectionReason());
            response.getTokenInvalidationTimestamp().ifPresent(timestamp -> {
                System.out.println("\t…and the token is invalid as of " + timestamp);
            });
        }
        apnsClient.close();
    });
    

内容的提问来源于stack exchange,提问作者Aakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:53:09