<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchConnectivity",
  "identifier" : "/documentation/WatchConnectivity/WCSession/activate()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Watch Connectivity"
    ],
    "preciseIdentifier" : "c:objc(cs)WCSession(im)activateSession"
  },
  "title" : "activate()"
}
-->

# activate()

Activates the session asynchronously.

```
func activate()
```

## Discussion

This method executes asynchronously and calls the [`session(_:activationDidCompleteWith:error:)`](/documentation/WatchConnectivity/WCSessionDelegate/session(_:activationDidCompleteWith:error:)) method of your delegate object upon completion. Call this method when your app is ready to communicate with its counterpart. Your cannot send or receive messages until you call this method. If the [`delegate`](/documentation/WatchConnectivity/WCSession/delegate) property is `nil`, calling this method logs an error.

In watchOS 2.1 and earlier, this method activates the session synchronously and always results in an active session.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)