0. 環境

[OS] Mac OS X 10.11.6
[IDE] Xcode 8.1
[Swift] 3.0

1. 問題

  • iPhone & AppleWatchアプリを作成中にSwiftを2.2から3へバージョンアップしたところ、iPhone側で下記のエラーが出るようになりました。

    Type 'ViewController' does not conform to protocol 'WCSessionDelegate'

2. 解決

  • ViewControllerに下記メソッドを追加するとエラーが消えました。

    public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
    }
    
    func sessionDidBecomeInactive(_ session: WCSession) {
    }
    
    func sessionDidDeactivate(_ session: WCSession) {
        session.activate()
    }
    

    下記の仕様書にもこれらのメソッドは必須と書かれています。

    [API Reference] WCSessionDelegate

3. 参考ページ