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 をセットアップしてみました
私は今、この問題に何日も苦労しています。したがって、すべてのヒントは高く評価されます。