1

通过使用 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

我现在在这个问题上挣扎了很多天。因此,每一个提示都受到高度赞赏。

4

0 回答 0