Сначала необходимо создать идентификатор MusicKit и закрытый ключ, используя это руководство от Apple .Затем можно легко создать токен, используя Swift-JWT из IBM в чистом Swift.
Это более или менее всего лишь вызов API SwiftJWT:
let teamId = "yourTeamID"
let keyId = "yourKeyID"
let keyFileUrl = URL(fileURLWithPath:"/pathToYour/key.p8")
struct MyClaims: Claims {
let iss: String
let iat: Date?
let exp: Date?
}
let myHeader = Header(kid: keyId)
let myClaims = MyClaims(iss: teamId, iat: Date(), exp: Date() + 24 * 60 * 60)
var myJWT = SwiftJWT.JWT(header: myHeader, claims: myClaims)
let token = try! myJWT.sign(using: .es256(privateKey: try! String(contentsOf: keyFileUrl).data(using: .utf8)!))
Я создал простой пример и инструмент командной строки с помощью диспетчера пакетов Swift: SwiftJWTSample