MPMediaPickerControllerがシミュレーターで表示されない
結論から言うと、シミュレーターではmusicライブラリにアクセスできないため、実機で動かす必要があります。
音楽ファイルを選択するUIを作りたくてMPMediaPickerController
を使ってみました。
コードはこんな感じのシンプルなものです。
let picker = MPMediaPickerController(mediaTypes: .music)
picker.delegate = self
self.present(picker, animated: true, completion: nil)
これが、シミュレーターだと動かない。環境はXcode 12.3です。
少し調べてみると4年前のstackoverflow記事が見つかりました。
この記事のようにランタイムエラーになってくれるなら良いのですけど、ログすら吐かれないので悩んでしまったんですよね。
ちなみに記事中にあるドキュメントには下記記述がありました。
Note: To follow these steps you’ll need a provisioned device because the Simulator has no access to a device’s iPod library.
(注意:シミュレーターではiPodライブラリにアクセスできないため、下記のステップを進めるためにはプロビジョニングされたデバイスが必要です。)
https://developer.apple.com/library/archive/documentation/Audio/Conceptual/iPodLibraryAccess_Guide/AboutiPodLibraryAccess/AboutiPodLibraryAccess.html#//apple_ref/doc/uid/TP40008765-CH103-SW9
ドキュメントがRetired Document
だったので、新しいドキュメントの記述も探してみました。
To follow these steps, you must have a provisioned iOS device. Simulator has no access to a device's music library.
https://developer.apple.com/documentation/mediaplayer/playing_audio_using_the_built-in_music_player
シミュレーターで動かないのは良いとして、せめてログくらいは出してほしいなーと思うのでした。
Discussion