Work with Xcode projects from inside Visual Studio Code.
Feedback is highy appreciated! Let me know if this works for you? Are there any showstopping bugs? Any features missing?
Caveats
- First release, my first non-trivial TypeScript/JavaScript program - expect bugs, problems, and non-idiomatic code.
- Only useful for macOS apps at this point.
- Managing the project (adding files, changing settings, etc.) has to be done using Xcode itself.
Features
- Build/Clean/Debug/Run Xcode workspsaces from within vscode.
- Switch between configurations (Debug/Release)
- Debug directly from vscode - easily define debug configuration.
- Status bar items that make it easy to build, debug, switch build and debug configurations.
macOS Example
The subdirectory examples/helloworld
contains a working example. Open VScode there.
Alternatively, in a new directory:
Create a new Xcode command line project, with the original name project
.
Create a new Xcode workspace named workspace
in the same directory. Add the project to the workspace.
Create a new scheme named build
inside the workspace and add project
to the scheme.
Create a configuration as a file named .vscode/xcodebuild-tools.json
:
{
"workspace": "${workspaceRoot}/workspace.xcworkspace",
"scheme": "build",
"variables": {
"ARG1": "argument 1",
"ARG2": "argument 2"
},
"postBuildTasks": [
{
"name": "Sleep for a few seconds",
"program": "sleep",
"args": [ "3" ],
"cwd": "${workspaceRoot}"
}
],
"debugConfigurations": [
{
"name": "test",
"cwd": "${workspaceRoot}",
"program": "${buildPath}/project",
"args": [
"${ARG1}",
"${ARG2}"
]
}
]
}
Use xcodebuild-tools
command to build, debug, run, clean, switch build configuration, and switch debug configurations.
Use the status bar to build, debug, switch configurations or kill the build.
iOS Example
The subdirectory examples/helloworld-ios
contains a working example. Open VScode there.
Alternatively, in a new directory:
Create an iOS example similar to above, but for iOS.
Install ios-sim
using npm
:
npm install --global ios-sim
- Use a configuration file similar to the following one:
{
"variables": {
"SDK_VERSION": "11.4"
},
"sdk": "iphonesimulator${SDK_VERSION}",
"workspace": "${workspaceRoot}/helloworld-ios.xcworkspace",
"scheme": "build",
"debugConfigurations": [
{
"name": "Simulator",
"cwd": "${buildPath}",
"program": "ios-sim",
"args": [
"launch", "project.app/",
"--devicetypeid", "com.apple.CoreSimulator.SimDeviceType.iPhone-7, ${SDK_VERSION}"
]
}
]
}
- Use
xcodebuild-tools
commands to build and run the project in the simulator.
Credits
- Heavily influenced by the great CMake-Tools extension.
- Code derived from the basic extension generated by
yo code
.