title: iOS WatchOS2 WatchConnectivity [WCSession defaultSession] activateSession] failure
body: <p>I have XCode 7.3, iPhone5 with iOS 9.3, Apple Watch with WatchOS 2.2 </p>
  
  <p>I have a company project which wants to support Watch App.
  Firstly, I built an empty project to make sure the watchkit and watchkit extension is working, and it does work.
  I can see the session is established and the watch is paired.</p>
  
  <p>But after i put the same code into the company project, it can only work for once:the first time I RUN the app directly from Xcode.When I kill the app from background and open it again, the app shows no paired watch.
  In this condition , I got the log below:
  In iOS app</p>
  
  <pre><code>paired == NO ---- watchAppInstalled=== NO---- complicationEnabled==NO  ----&lt;WCSession:0x7ffb9a815ab0,hasDelegate:No,activationState:2&gt;
  </code></pre>
  
  <p>in watchKit Extension </p>
  
  <pre><code>Error Domain=WCErrorDomain Code=7004 "WatchConnectivity session has not been activated." UserInfo={NSLocalizedRecoverySuggestion=Activate the WatchConnectivity session., NSLocalizedDescription=WatchConnectivity session has not been activated., NSLocalizedFailureReason=Function activateSession has not been called.}
  </code></pre>
  
  <p>my  code about wcsession :</p>
  
  <h2>iOS APP</h2>
  
  <h3>in  AppDelegate+GC_WCSession</h3>
  
  <pre><code> - (void)startWCSession{
  
      [self configSession];
       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLoginStatus:) name:GCLoginNotifyKey object:nil];
  
  }
  - (void)configSession{
      if (![WCSession isSupported]) {
          return;
      }
      _session = [WCSession defaultSession];
      [_session setDelegate:self];
      [_session activateSession];
  }
  - (void)session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary&lt;NSString *,id&gt; *)applicationContext {
      [self.session activateSession];
      if ([applicationContext objectForKey:k_WK_Token]) {
          [self synchronousUserInfo];
      }
  }
  
  - (void)changeLoginStatus:(NSNotification *)noti{
      ///
      [self synchronousUserInfo];
  }
  
  - (void)synchronousUserInfo{
     ///customCode
      [self.session updateApplicationContext:replayDict error:nil];
  }
  
  - (WCSession *)session{
      if (![WCSession isSupported] || ![[WCSession defaultSession] isPaired ]|| ![[WCSession defaultSession]isWatchAppInstalled] ) {
          return nil;
      }
      return  _session;
  }
  </code></pre>
  
  <h3>in AppDelegate</h3>
  
  <pre><code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
       [self startWCSession]; 
  }
  </code></pre>
  
  <h2>watchKit Extension</h2>
  
  <h3>in ExtensionDelegate</h3>
  
  <pre><code>- (void)applicationDidFinishLaunching {
      // Perform any final initialization of your application.
       [self startWCSession];
  }
  - (void)startWCSession{
  
      [self configSession];
  }
  - (void)configSession{
      _session = [WCSession defaultSession];
      [_session setDelegate:self];
      [_session activateSession];
  }
  
  - (void)session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary&lt;NSString *,id&gt; *)applicationContext {
    ///customcode
  }
  - (WCSession *)session{
      return _session;
  }
  </code></pre>
  
  <p>This is what I've tried up to now:</p>
  
  <ul>
  <li><p>reset content and settings of all simulators</p></li>
  <li><p>deleted watch app from watch &amp;from iPhone</p></li>
  <li><p>via settings in Watch App on Phone: Removed Watch Extension for Phone App and reinstalled it</p></li>
  <li><p>Tried setting up the iPhone WCSession in AppDelegate INIT Method</p></li>
  </ul>
  
  <p>I don't think the code is wrong, because it's working in an empty project.I wonder if the environment config has problems.
  I am struggling with this issue for many days now. So every hint is highly appreciated.</p>