我正在尝试使用 Apple Music API 在 iOS 14 上播放歌曲。 我有开发者的 token ,我已经请求访问用户的苹果音乐的权限。
但是,当我调用 requestusertoken api ,它的闭包永远不会被调用,所以很明显我没有从请求中收到任何东西——甚至没有错误。这让我发疯。
这是我的代码。我做错了什么?
func getUserToken() -> String {
var userToken = String()
let lock = DispatchSemaphore(value: 0)
SKCloudServiceController().requestUserToken(forDeveloperToken: developerToken) { (receivedToken, error) in
guard error == nil else { return }
if let token = receivedToken {
userToken = token
lock.signal()
}
}
lock.wait()
return userToken }
最佳答案
我试过代码,有两个主要问题。
首先,DispatchSemaphore 使返回行执行得太早。其次,由于最新的 iOS 14.3 问题,原始开发人员 token 无法使用。
所以,我首先删除了 DispatchSemaphore。
func getUserToken() {
var userToken = String()
SKCloudServiceController().requestUserToken(forDeveloperToken: developerToken) { (receivedToken, error) in
guard error == nil else { return }
if let token = receivedToken {
userToken = token
print(userToken)
}
}
}
然后在 repository 之后调整开发人员 token .
现在,它正在正确打印用户 token 。我希望这对您有所帮助。
关于iOS 14 StoreKit - SKCloudServiceController 的 requestusertoken 未被正确调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64624635/