1

WCSession sendMessage を使用することで、自分のプロジェクトの 1 つで常に ErrorDomainCode 7005 を取得しています。

すべてのシミュレーターでテストし、実際の iPhone とペアリングされた Apple Watch でもこのエラーが発生します。デバイスは確実にペアリングされています。

Watch 拡張機能を使用してゼロから作成した他の (新しい) プロジェクトでも、まったく同じコードが正常に機能します。

最近ウォッチ拡張機能を追加した古いプロジェクトでのみ、この問題が発生します。

watch アプリは単に 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" });

}

拡張 InterfaceController を見る: 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から時計アプリを削除
  • 電話の Watch アプリの設定経由: 電話アプリの Watch 拡張機能を削除し、再インストールしました。
  • AppDelegate INIT メソッドで iPhone WCSession をセットアップしてみました

私は今、この問題に何日も苦労しています。したがって、すべてのヒントは高く評価されます。

4

0 に答える 0