✎ Edit on GitHub


The first thing you'll probably notice about Vapor and SwiftPM projects in general is that we don't include an Xcode project. In fact, when SwiftPM generates packages, the .xcodeproj file is gitignored by default.

This means we don't have to worry about pbxproj conflicts, and it's easy for different platforms to utilize their own editors.

Generate Project

Vapor Toolbox

To generate a new Xcode project for a project, use:

vapor xcode

If you'd like to automatically open the Xcode project, use vapor xcode -y


To generate a new Xcode project manually.

swift package generate-xcodeproj

Open the project and continue normally.


For many packages with underlying c-dependencies, users will need to pass linker flags during build AND project generation. Make sure to consult the guides associated with those dependencies. For example:

vapor xcode --mysql


swift package generate-xcodeproj -Xswiftc -I/usr/local/include/mysql -Xlinker -L/usr/local/lib