#ios #swift #xcode #swiftui
#iOS #swift #xcode #swiftui
Вопрос:
В моем приложении я получаю доступ к локальной музыке iTunes с помощью MPMediaQuery. Мне нужно только запросить локальную музыку на устройстве iOS, и мне не нужен доступ к Apple Music / iTunesStore.
Версия Swift: 5
Цель iOS: 14.x
Чтобы получить доступ к локальной музыке, я добавил это в свой Info.plist
:
<key>NSAppleMusicUsageDescription</key>
<string>Music player needs access to your music</string>
Это мой первоначальный код Swift:
import MediaPlayer
struct Track {
let url: URL
let artist: String?
let title: String?
}
class ViewModel: ObservableObject {
@Published var tracks: [Track] = [Track]()
init() {
MPMediaLibrary.requestAuthorization { status in
if status == .authorized {
DispatchQueue.main.async {
let mediaItems: [MPMediaItem] = MPMediaQuery.songs().items!
for item in mediaItems {
self.tracks.append(Track(url: item.assetURL!, artist: item.artist, title: item.title))
}
}
}
}
}
}
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()
var body: some View {
VStack() {
List {
ForEach(self.viewModel.tracks, id: .url) { track in
VStack(alignment: .leading) {
Text(track.artist ?? "")
Text(track.title ?? "")
}
}
}
}
}
}
При запуске этого кода на моем iPhone я получаю эти предупреждения в журналах Xcode:
2020-09-29 15:42:37.395885 0200 Playground1[12541:1125769] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2020-09-29 15:42:37.396041 0200 Playground1[12541:1125769] [iTunesCloud] ACAccountStore 0x280597090 - Error retrieving iTunesStore accounts. err=Error Domain=com.apple.accounts Code=9 "(null)"
2020-09-29 15:42:37.397384 0200 Playground1[12541:1125769] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2020-09-29 15:42:37.397491 0200 Playground1[12541:1125769] [iTunesCloud] ACAccountStore 0x280597090 - Error retrieving iTunesStore accounts. err=Error Domain=com.apple.accounts Code=9 "(null)"
2020-09-29 15:42:37.407044 0200 Playground1[12541:1125769] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2020-09-29 15:42:37.407147 0200 Playground1[12541:1125769] [iTunesCloud] ACAccountStore 0x280597090 - Error retrieving iTunesStore accounts. err=Error Domain=com.apple.accounts Code=9 "(null)"
2020-09-29 15:42:37.407200 0200 Playground1[12541:1125769] [iTunesCloud] ACAccountStore 0x280597090 - Error retrieving local store account. err=Error Domain=com.apple.accounts Code=9 "(null)"
2020-09-29 15:42:37.407250 0200 Playground1[12541:1125769] [iTunesCloud] [ICUserIdentityStore] Failed to fetch local store account with error: Error Domain=com.apple.accounts Code=9 "(null)".
Как я могу подавить эти предупреждения?
Могу ли я просто полностью отключить любые возможности Itunes Store / Apple Music для моего приложения?
Ответ №1:
Я только что наткнулся на ваш вопрос.
Это ошибка Apple, описанная здесь и в других местах.
Я не нашел способа предотвратить эти предупреждения при использовании моего кода MPMediaQuery
.
Извините, что сообщаю плохие новости. 🙁