【发布时间】:2016-01-02 20:28:53
【问题描述】:
有一些帖子讨论了 Game Center 的推送通知在沙盒中是如何相当不可靠的。但是,沙盒被 iOS 9 混淆了,所以我不确定为什么我的 Game Center 推送通知如此不可靠。
当我回复活跃的交换时,发件人很少收到通知。
[exchange replyWithLocalizableMessageKey:@"EXCHANGE_REPLY" arguments:@[] data:data completionHandler:^(NSError *error) {
if (error)
{
NSLog(@"");
}
}];
在发件人设备上,如果我刷新匹配数据,我会看到待处理的回复。如果我处理回复,一切正常。
这个方法也一样:
- (void)sendExchangeToParticipants:(NSArray<GKTurnBasedParticipant *> *)participants
data:(NSData *)data
localizableMessageKey:(NSString *)key
arguments:(NSArray<NSString *> *)arguments
timeout:(NSTimeInterval)timeout
completionHandler:(void(^__nullable)(GKTurnBasedExchange *exchange, NSError *error))completionHandler
此时,我认为我最好的选择是运行我自己的推送通知逻辑来触发更新匹配数据。那或者我已经读过发送提醒更可靠,尽管我相信这有限制。
更新
我试过只使用设备而不是模拟器。同样的问题。看起来这是一个众所周知的问题。 It's even noted in this book on page 766.
更新
发送提醒没有帮助。
更新
通常在回复交换时,我会从 GameKit 收到此错误。
The connection to service named com.apple.gamed was interrupted, but the message was sent over an additional proxy and therefore this proxy has become invalid.
【问题讨论】:
-
还有一点需要注意,我使用的是模拟器和设备。根据这篇文章,我现在只尝试两种设备:stackoverflow.com/questions/7935336/…
-
你今天试过了吗?过去几个月我一直在使用 GC API,今天突然间,我遇到的所有 GC 问题都开始正常工作了。
-
@user523234,不,我没有。它实际上确实经历了按预期工作的时期,但不会持续很长时间。
-
@user523234 我遇到了一个问题,我没有收到来自
endTurnWithNextParticipants的推送通知,在阅读了您的评论后,我今天刚刚尝试过,它可以工作。 -
您是否找到了“与名为 com.apple.gamed ... 的服务的连接”的原因。知道消息的含义吗?
标签: ios game-center gkturnbasedmatch