spawn A small command-line tool to quickly tryout a Swift Package Manager (SPM) package locally.
As of Xcode 11, this has been sherlock'ed by Xcode 11 Package support :), as in from Xcode 11 onwards, Xcode will automatically resolve package dependencies and open Xcode project for you, no 3rd party tool needed. But I will keep this tool as learning purpose.
Its job is to check if current repo has any Package.swift
and resolve dependencies and then open the Xcode for you.
$ spawn
Completed resolution in 0.22s
📦 ... Everything is already up-to-date
🛠 ... generated: ./spawn.xcodeproj
📂 ... opening updated Xcode project
✅ all done!
NOTE: you might want to close Xcode to have the xed .
taking into effect, or chose Revert
option from Xcode alert.
When you want to try out or to edit a SPM package in Xcode, or after adding any new .package
under SPM's package manifest file; you need to either run swift package update
or swift package generate-xcodeproj
and reload Xcode again.
This small wrapper aims to automate that process.
tldr; before:
$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ swift package update # update or resolve package dependencies
$ swift package generate-xcodeproj # generate a .xcodeproj to edit on Xcode
$ xed . # open generated .xcodeproj automatically
after:
$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ spawn
TODO: I will be looking at the way to automate cloning from remote repo in the future, for example:
$ spawn https://github.com/vinhnx/DictionaryNestedSubscript # not yet working
On any Swift package directory, after git clone
:
$ spawn
You can use spawn as replacement for Vapor's vapor xcode -y
command
before:
$ vapor xcode -y
after:
$ spawn
"A package manager that installs prebuilt Swift command line tool packages, or Homebrew for Swift packages."
$ swift brew install vinhnx/spawn
$ brew tap vinhnx/homebrew-formulae
$ brew install spawn
or
$ brew install vinhnx/homebrew-formulae/spawn
$ mint install vinhnx/spawn
$ marathon install vinhnx/spawn
Make
$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ make
Swift Package Manager
$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ swift build -c release
$ cp -f .build/release/spawn /usr/local/bin/spawn
If you like this tool, checkout my vintage, it's a tool to check for any outdated packages.
Combo:
$ vintage && spawn # vintage: check for any outdated packages, spawn: generate and update packages for you
I hope you like it! :)
Feel free to contact me on Twitter for discussions, news & announcements & other projects. 🚀