gpt4 book ai didi

ios - CloudKit iOS 9.0 didReceiveRemoteNotification 在 iOS 9.3 发布后未调用

转载 作者:可可西里 更新时间:2023-11-01 04:56:18 27 4
gpt4 key购买 nike

我有一个装有 iOS 9.0 的 iPod Touch,它在 iOS 9.3 发布后没有收到 CloudKit CKSubscription 推送通知。

我装有 iOS 9.3 的 iPad 可以正常接收通知,使用相同版本的应用程序。

有人知道这是怎么回事吗?某些 CloudKit 版本是否不再向旧版本推送通知?

当我在我的 iPod Touch 上删除并重新安装该应用程序时,我点击“允许”以允许推送通知,但是如果我在我的 CloudKit 仪表板中进行任何记录更改,只有我的 iPad 会收到推送通知,而 didReceiveRemoteNotification 甚至都不会在我的 iPod Touch 上打电话。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

// Register for push notifications
let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert, categories: nil)
application.registerUserNotificationSettings(notificationSettings)
application.registerForRemoteNotifications()

return true
}

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
}

最佳答案

解决方案相当棘手。在我的 Xcode 项目中,有一个 *.entitlements 文件,其中包含我的应用程序图标的名称(显示在设备上)。但是,我的项目名称与这个 *.entitlements 文件不同:

我的文件:ABC.entitlements(我的应用在设备上显示为 ABC)

我的项目名称: XYZ

所以我尝试将权利文件的名称更改为 XYZ.entitlements,但 Xcode 警告我已经有一个名为 XYZ.entitlements 的文件。事实证明,我的 Supporting Files 文件夹中还有另一个 *.entitlements 文件。此授权文件没有任何 iCloud 设置。

实际上,这应该无关紧要,因为在我的build设置中,权利文件路径设置为 ABC.entitlements,但出于某种原因,对于我的 iPod Touch 的 iOS 9.0.1,它似乎正在使用 XYZ。权利文件(我的假设)。

我从我的项目中删除了 XYZ.entitlements 文件,并且还在我的目标成员中包含了 ABC.entitlements 文件。之后,我的 iPod Touch 又能收到 CloudKit 通知了。

感谢您的帮助!

关于ios - CloudKit iOS 9.0 didReceiveRemoteNotification 在 iOS 9.3 发布后未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36555124/

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