Apple implemented privacy safeguards on iOS long ago so that when an app requests access to your contacts, calendars, photos, or location, a dialog box pops up asking for express user permission. On iOS 9 and previous software versions, however, that safeguard did not extend to a device’s music library.
Apple developer Ben Dodson addressed the privacy concern in a blog post in January:
I discovered that there is no privacy prompt when a developer tries to access your library. In fact, they can access all of your music data […] This process happens completely silently and in my tests I was able to loop through a library of 10,000 songs, put all the metadata in a JSON file, and upload it to a server in under 2 seconds!
Apple acknowledged the issue earlier this year, and it has now introduced a new Cocoa key called NSAppleMusicUsageDescription that developers are required to use in all apps which access the media library on iOS 10 or later. This change ensures that users have to grant express permission for an app to access the music library.
NSAppleMusicUsageDescription (String – iOS). This key lets you describe the reason your app accesses the user’s media library. When the system prompts the user to allow access, the value that you provide for this key is displayed as part of the alert.
To protect user privacy, an iOS app linked on or after iOS 10.0, and which accesses the media library, must statically declare the intent to do so. Include the NSAppleMusicUsageDescription key in your app’s Info.plist file and provide a purpose string for this key. If your app attempts to access the media library without a corresponding purpose string, your app exits.
The new requirement will prevent third-party developers from being able to access a user’s music library and send data on what’s included back to a server without user-granted permission. This includes changes to the music library, which could have been analyzed for advertising or tracking purposes.
Apple previewed iOS 10 on Monday during its WWDC 2016 keynote, and it has seeded the first beta to developers. A public beta will launch in July ahead of an official release in the fall. iOS 10 is compatible with most iOS 9 devices, excluding the iPhone 4s, iPad 2 and 3, original iPad mini, and fifth-generation iPod touch.
(Thanks, Steve Moser!)
Discuss this article in our forums