Summary
The article discusses enabling iOS development on Visual Studio Code (VSCode), an alternative to Xcode, particularly useful for developers who want cross-platform support on systems like Linux and Windows, as well as features like Live Share for real-time collaboration. It outlines the steps required to configure VSCode for Swift and iOS development by enabling Swift support, adding iOS frameworks, and supporting app targets, emphasizing that while Xcode is essential, VSCode can enhance the development experience.
Key Points
Overview of iOS Development on VSCode
- Apple is increasingly supporting Swift on platforms beyond macOS, including Linux, Windows, and cloud environments.
- VSCode is becoming a viable option for iOS development, offering unique collaboration features that Xcode lacks.
Reasons to Use VSCode Over Xcode
- Xcode is not available for Linux and Windows, limiting cross-platform development.
- Features like Live Share allow for real-time collaborative coding, akin to Google Docs for documents, enhancing pair programming and remote collaboration.
Steps to Enable iOS Development in VSCode
-
Enable Swift Language Support
- Ensure Xcode and VSCode are installed.
- Use the command
$ xcrun sourcekit-lsp
to confirm SourceKit-LSP is functioning correctly.
-
Build the SourceKit-LSP Extension
- Clone the SourceKit-LSP repository:
$ git clone https://github.com/apple/sourcekit-lsp.git $ cd sourcekit-lsp/Editors/vscode/ $ npm run createDevPackage $ code --install-extension out/sourcekit-lsp-vscode-dev.vsix
- Restart VSCode after installation.
-
Configure the Extension
- Open
settings.json
in VSCode and add the following to specify the path to the SourceKit-LSP executable:
"sourcekit-lsp.serverPath": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
- Open
Adding iOS Framework Support
- Insert the following configuration in
settings.json
to enable import of iOS frameworks like UIKit:
"sourcekit-lsp.serverArguments": ["-Xswiftc", "-sdk", "-Xswiftc", "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk", "-Xswiftc", "-target", "-Xswiftc", "x86_64-apple-ios13.6-simulator"]
Supporting App Targets
- To work on iOS apps rather than just Swift packages, create a dummy
Package.swift
file in the root directory to satisfy SourceKit-LSP's requirements:
// swift-tools-version:5.2
import PackageDescription
let packageName = "PROJECT_NAME" // <-- Change this to yours
let package = Package(
name: packageName,
products: [
.library(name: packageName, targets: [packageName])
],
targets: [
.target(name: packageName, path: packageName)
]
)
- Make sure to replace
PROJECT_NAME
with the actual name of your project.
Conclusion
- After following these steps, restart VSCode, and you should have proper UIKit auto-completion, allowing developers to utilize VSCode as a functional IDE for iOS development.
Top comments (1)
It seems this guide is outdated. i.e.:
when cloning there's no
sourcekit-lsp/Editors/vscode/
folder"sourcekit-lsp.serverPath" is marked as deprecated
I'm still struggling setting my environment but I think using the Swift extension is a better route