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?
- 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.
- 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.
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 addproject
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.
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
usingnpm
:
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.
- Heavily influenced by the great CMake-Tools extension.
- Code derived from the basic extension generated by
yo code
.