gpt4 book ai didi

ios - 使用 Xcode 7 和 iOS 9 的谷歌云消息传递

转载 作者:IT王子 更新时间:2023-10-29 05:32:11 24 4
gpt4 key购买 nike

我已经设法在 Android 设备上使用 GCM,但现在我正尝试在 iOS 应用程序上实现。

我想我遵循了所有必要的步骤才能使用 GCM 服务。我关注了 https://developers.google.com/cloud-messaging/ios/client?configured=true将服务添加到现有应用。

我认为一切都配置正确,但我无法收到任何通知。我有 APN 证书和 GoogleService-info.plist 文件,在控制台上这是输出:

2016-01-05 13:47:53.864: GCM | Invalid key in checkin plist: GMSInstanceIDDeviceDataVersion Connected to GCM 2016-01-05 13:47:57.501: GGLInstanceID | Invalid last checkin timestamp in future. 2016-01-05 13:47:57.501 TerneraGallega[1014:444977] Checkin successful with authId: 4958686017822257121, digest: KSJNg+Aj82uavBXrFeOAfA==, lastCheckinTimestamp: 1451998077000 Registration Token: nC-dd9fCvFs:APA91bHMfbvLczxSPLQsLeEJASU_RfV4wvVuPs2u4VJDtpC8oB2cm1AKr6cH_LFeLsQzb94Kk9iwez8fsOvgzNns_9DU3i8Ema1oCKIwcNFzenNpAhViyGHah4E7-RkQlg1durYSEQRD Already subscribed to /topics/global

如果我通过以下方式发出 POST 请求,我会立即收到此消息:

{ "to" : "nC-dd9fCvFs:APA91bHMfbvLczxSPLQsLeEJASU_RfV4wvVuPs2u4VJDtpC8oB2cm1AKr6cH_LFeLsQzb94Kk9iwez8fsOvgzNns_9DU3i8Ema1oCKIwcNFzenNpAhViyGHah4E7-RkQlg1durYSEQRD", "content_available" : true, "notification" : { "body" : "great match!", "title" : "Portugal vs. Denmark" } }

第一次尝试它返回一条成功消息,但设备中没有显示日志或通知(应用程序在前台)

几分钟后,再次尝试 POST 请求,现在返回失败

{ "multicast_id": 7256343774952522277, "success": 0, "failure": 1, "canonical_ids": 0, "results": [ { "error": "NotRegistered" } ] }

现在,我从 Google 页面下载了 GCM 示例,配置了 APN,还获得了 GoogleService-info.plist,当它在设备上打开后立即启动 GCM 示例 Swift 文件时,它说:

Registration Succesful! Check the xcode debug console fot the registration token that you can use...

在此之后,如果您使用

设置 POST 请求

{ "to" : "mVEtHyTXEOg:APA91bGvK_Uf2ZKgpguWUOto3CXQzIT1z22uJ446mYkNqMwL9VLDYdGtdm_4vS8rcl3T9OeqEC1UWbdKAOyuoweW1GiU0mv0cDSPW03y4XGx19JcR6rxsiWRNUjtADX6iNAW8wM8UBJl", "content_available" : true, "notification" : { "body" : "great match!", "title" : "Portugal vs. Denmark" } }

它再次返回一个

{ "multicast_id": 7435981433811133310, "success": 0, "failure": 1, "canonical_ids": 0, "results": [ { "error": "NotRegistered" } ] }

在应用上实现了 GCM 的人可以指出我缺少的东西吗?

--------编辑--------

最后,我通过使用分发证书而不是开发证书使其正常工作...似乎我的配置都很好,但我缺少开发证书的一些东西。

PS:在 ID 下的 APN 配置文件页面中,我启用了两个推送通知证书(这就是为什么我认为一切都配置良好)

但我会保留这个问题,因为我无法在开发环境下使用它

最佳答案

我能够有效地完成与您编辑中的修复相同的事情,而不会弄乱证书​​。显然,如果您已经设置好所有内容,并且同时使用开发和生产环境,这将行不通,但如果您只是处于开发阶段,则更改起来很容易。

在应用程序中的 Gcm 示例项目(用于 objective-c)中:didRegisterForRemoteNotificationsWithDeviceToken 我只是将代码从:

    _registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};

    _registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};

我知道这不是一个真正的修复,但它至少可以在不更改任何证书的情况下工作(只要设置了生产证书。

关于ios - 使用 Xcode 7 和 iOS 9 的谷歌云消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com