通过使用 WCSession sendMessage,我在我的一个项目中不断收到 ErrorDomainCode 7005。
在使用所有模拟器以及在真实 iPhone 和配对的 Apple Watch 上进行测试时,我会收到此错误。设备肯定是配对的。
完全相同的代码适用于我从头开始与 Watch Extension 一起创建的其他(较新)项目。
我确实只有在最近添加了手表扩展的旧项目中才会遇到这个问题。
手表应用程序根本不与 iPhone 应用程序通信。
以下是我的代码:
didFinishLaunchingWithOptions 中的 AppDelegate:
if ([WCSession isSupported]) {
[[WCSession defaultSession] setDelegate:self];
[[WCSession defaultSession] activateSession];
}
AppDelegate:消息的接收者
- (void)session:(WCSession *)session
didReceiveMessage:(NSDictionary<NSString *, id> *)message
replyHandler:(void (^)(NSDictionary<NSString *, id> *_Nonnull))replyHandler {
replyHandler(@{ @"message" : @"OK" });
}
观看扩展接口控制器:awakeWithContext
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
[[WCSession defaultSession] isReachable];
if ([WCSession isSupported]) {
[[WCSession defaultSession] setDelegate:self];
[[WCSession defaultSession] activateSession];
}
[self.wcSession sendMessage:applicationData
replyHandler:^(NSDictionary *reply) {
NSLog(@"OK");
}
errorHandler:^(NSError *error) {
//catch any errors here
[self.testLabel setText:[error.userInfo objectForKey:@"NSLocalizedDescription"]];
}
];
这是我到目前为止所尝试的:
- 重置所有模拟器的内容和设置
- 从手表和 iPhone 中删除了手表应用
- 通过手机手表应用程序中的设置:删除手机应用程序的手表扩展并重新安装
- 尝试在 AppDelegate INIT 方法中设置 iPhone WCSession
我现在在这个问题上挣扎了很多天。因此,每一个提示都受到高度赞赏。