Thanks for the reply @_lilpit! It's annoying that Apple's own initializer doesn't even work.
As for the portability, I did some further testing and found some interesting results I'm going to post incase someone comes across this later.
Tokens are not portable across devices unless the devices are in the same family-sharing network. Using json encoding/decoding, you are fully capable of (for example) extracting a token, storing it on a server or something, sending the token to a different device in the same family network, creating a working application token on the other device, and blocking that application.
Despite these findings, there are almost no practical use cases for this so that's sick