Code migration from Swift 2.x to Swift 4
Yes, you first need to migrate your code from Swift 2 to Swift 3, using Xcode 8.
Xcode 8 is the last version to support Swift 2.
Starting with Xcode 9, the supported Swift versions are 3.2 and 4
Yes, you must migrate your code in Swift 3 compatible version. Xcode 9 allows conversion/migration from swift 3.0 only.
Swift 3.2 is supported by Xcode 9 & Xcode 8 both.
Convert your source code from Swift 2.0 to 3.2 using Xcode 8 and then continue with Xcode 9 (Swift 3.2 or 4).
For easier migration of your code, follow these steps: (it will help you to covert into latest version of swift supported by your Xcode Tool)
(Xcode) Menus: Edit ► Covert ► To Current Swift Syntax