ユーザーの iTunes ライブラリにアクセスする必要があります。ユーザーが iTunes Store から購入したか、Apple Music から自分のライブラリに追加したか、コンピュータから同期してロードした、プレイリストとアルバム以外のすべての曲を一覧表示したいと考えています。MPMediaQuery
リストを取得するために使用します。以下のコードを実行するとエラーが発生することを除いて、すべて正常に動作しているように見えます。
2019-12-10 12:55:01.098885+0300 AppName[11292:2511243] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2019-12-10 12:55:01.101918+0300 AppName[11292:2511243] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2019-12-10 12:55:01.124897+0300 AppName[11292:2511243] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2019-12-10 12:55:01.125093+0300 AppName[11292:2511243] [iTunesCloud] [ICUserIdentityStore] Failed to fetch local store account with error: Error Domain=com.apple.accounts Code=9 "(null)".
コードは問題なく動作し、iTunes Store から購入したアイテムを含め、ライブラリにあるすべてのアイテムが一覧表示されます。動作していてもエラーが出力される理由を理解しようとしています。
let myPlaylistQuery = MPMediaQuery.playlists()
let playlists = myPlaylistQuery.collections
for playlist in playlists! {
print(playlist.value(forProperty: MPMediaPlaylistPropertyName)!)
let songs = playlist.items
for song in songs {
let songTitle = song.value(forProperty: MPMediaItemPropertyTitle)
print("\t\t", songTitle!)
}
}