LoginSignup
1
0

More than 5 years have passed since last update.

[iOS9]MPMediaLibraryAuthorizationのavailableに惑わされた件

Last updated at Posted at 2018-03-12

この記事について

iOS 8からiOS 10のあたりってApple Musicが発表されたり、メディアライブラリへのパーミッション設定が必須になったりと音楽関係のライブラリが大きく変わっているタイミングなんですよね。

それもあってかiOS 9.3.5の環境の動作がゴチャってました。
だいぶ今更感もありますが、パーミッション部分の整理しました。

参考

[iOS] iOS 9.3 の新機能を使用して Apple Music の曲の再生とライブラリへの追加を行う
[iOS 10] 各種ユーザーデータへアクセスする目的を記述することが必須になるようです

結論

 もう面倒だし、対応バージョンiOS 10以降でいいんじゃね?
 パーミッションの差異を気をつけつつ、バージョンに合った動作をさせましょう。
 - MPMediaLibraryAuthorization(ミュージックライブラリを参照したい場合)
  → iOS 10以降からチェックする。(iOS 9.3系ではチェックしない)
 - SKCloudServiceAuthorizationStatusAuthorized(AppleMusicを扱いたい場合)
  → iOS 9.3以降からチェックする。

事象

 MPMediaLibraryAuthorization@available(iOS 9.3, *)なのでiOS 9環境でもパーミッション確認を出すことができます。

 しかし、パーミッションの設定に関係なく、ライブラリが参照できます。

 そのため、許可してないのにライブラリ全部表示されてしまい、小一時間苦悩しました。。
 加えて、パーミッションの設定画面も「MEDIA_LIBRARY」と書かれており、明らかにローカライズが準備されてない表示です。。
t.png

最後に

 iOS 9.3.0 〜 iOS9.3.5というかなり限定的なバージョンのお話になってしまいましたが、
 流石にiOS9のマイナーバージョンアップは無いでしょうし、アプリケーション側でカバーしてあげる必要があります。
 正直致命的でもないですし、下位互換性の気遣いあるアプリを作るという面で少しでもお役に立てたら幸いです。

 んーでも、やっぱり対応バージョンをiOS 10以降にした方がよくね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0