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

时间:2016-04-11 17:16:37

标签: ios push-notification synchronization cloudkit

iOS 9的iPod Touch在iOS 9.3发布后没有收到CloudKit CKSubscription推送通知。

我的带有iOS 9.3的iPad使用相同版本的应用程序接收通知就好了。

有谁知道这里发生了什么?某些CloudKit版本是否不再将通知推送到旧版本?

当我在iPod Touch上删除并重新安装应用程序时,我点击"允许"允许推送通知,但如果我在CloudKit仪表板中进行任何记录更改,则只有我的iPad收到推送通知,并且甚至在我的iPod Touch上都没有调用didReceiveRemoteNotification。

var defaults = {
   title: undefined,
   yMax: undefined,
   yMin: undefined,
   yPeriod: undefined,
   xMax: undefined,
   xMin: undefined,
   xPeriod: undefined,
   dots: {}
 }

 var a = [];
 for (prop in defaults) {
   if (typeof defaults[prop] != 'object') a.push(prop);
 }

 console.log(a);

1 个答案:

答案 0 :(得分:0)

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

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

我的项目名称: XYZ

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

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

我从项目中删除了XYZ.entitlements文件,并在目标成员资格中包含了ABC.entitlements文件。在此之后,我的iPod Touch能够再次接收CloudKit通知。

感谢您的帮助!