@Cykelero Keygen: It does not. It's REST calls all the way down, though, so I built a wee abstraction around that using NetworkingClient (which I like more than AlamoFire).
You store the license key in the Keychain or UD, then call a Keygen endpoint, passing the key and the product ID, and it’ll give you the status (valid, expired, expired but valid for an earlier version etc.). It took me a while to wrap my head around it but looking back, it's not really that complicated.