2017-06-02 83 views
0

我创建一个简单的应用程序,涉及到苹果的关注和iPhone之间的通信。WatchOS 3:为什么WCSession永远不会在iPhone上激活?

目前使用的是iPhone 6S(10.3.2)与WatchOS 3.2.2

我不能让这两个沟通,我相信我的poblem是WCSession不会对iPhone激活。

当WatchOS代码运行,控制台打印出“activationDidCompleteWithState”如预期,表示WCSession已被激活(见下面的代码)。

然而,在iOS端的“activationDidCompleteWithState”方法不会打印到控制台。如果我尝试从手表发送短信到手机上,他们超时,我得到以下错误:

[WC] - [WCSession onqueue_handleMessageCompletionWithError:withMessageID:] 109FE5D2-6218-4D67-AFD7-E72FA7E4A22E由于WCErrorCodeTransferTimedOut - > IDSErrorTypeTimedOut-> IDSResponseTimedOut

我相信WCSession从来没有在手机上激活。有没有看到这个问题?我快要疯了这... ...

我以前建立了这个与WatchOS 2,它工作得很好。不知何故,WatchOS 3的更新已经让我了解。任何帮助将不胜感激。

iOS的代码AppDelegate.m:

@implementation AppDelegate 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if ([WCSession isSupported]) 
    { 
     WCSession* session = [WCSession defaultSession]; 
     session.delegate = self; 
     [session activateSession]; 
    } 

    return YES; 
} 
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState 
      error:(NSError *)error 
{ 
    NSLog(@"PHONE - activationDidCompleteWithState"); 
} 

WatchOS代码ExtensionDelegate.m:

@implementation ExtensionDelegate 
- (void)applicationDidFinishLaunching 
{ 
    if ([WCSession isSupported]) 
    { 
     WCSession* session = [WCSession defaultSession]; 
     session.delegate = self; 
     [session activateSession]; 
    } 
} 
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState 
      error:(NSError *)error 
{ 
    NSLog(@"activationDidCompleteWithState"); 
} 

回答

0

好吧,我想通了这一点。

我重新通电,这得到了WCSession在手机上工作的iPhone。必须取消配对,然后重新配对。

它的工作现在。总废话...

相关问题