Apple and others, like Google, LinkedIn, and Path, now know that privacy is synonymous with users’ information, and the iDevice-maker is finally attempting to rights its wrongs by requiring user permission in iOS 6 before apps can access any sensitive particulars.

Congress, regulatory bodies, and consumer advocates alike became aware earlier this year that apps uploaded data—such as entire contact lists—to their servers without notifying or even asking for permission from users first. Apple responded to the uproar in February when a representative said future software releases would require explicit user approval.

Not too long after, Apple launched OSX Mountain Lion beta, and —lo and behold—it required apps to seek permission and alert users before cropping data. Now, iOS 6 does the same thing.

According to the “Security” section of the release notes:

Apple’s iOS 6 preview launched during the opening keynote of the Worldwide Developers Conference. It is now in beta for developers but will release to the public this fall.

In iOS 6, the system now protects Calendars, Reminders, Contacts, and Photos as part of Apple’s data isolation privacy initiative.

Users will see access dialogs when an app tries to access any of those data types. The user can switch access on and off in Settings > Privacy.

There are APIs available to allow developers to set a “purpose” string that is displayed to users to help them understand why their data is being requested.

There are changes to the EventKit and Address Book frameworks to help developers with this feature..

The full release notes are below.

Related articles

  • Path deletes users’ stored address book data, opt in update released. CEO apologizes
  • Apple in court: iPhone data collection, Samsung/iPad patent case, & double iTunes billing
  • Will your iOS device get all of the new iOS 6 features? Here’s the official word

In certain situations, the Auto Layout system might not engage automatically for a view. To workaround this problem, override the requiresConstraintBasedLayout class method in your view and return YES from your implementation. The willRotateToInterfaceOrientation:duration:, willAnimateRotationToInterfaceOrientation:duration :, and didRotateFromInterfaceOrientation: methods are no longer called on any view controller that makes a full screen presentation over itself—for example, by calling presentViewController:animated:completion:. You should make sure that your apps are not using these methods to manage the layout of any subviews. Instead, they should use the view controller’s viewWillLayoutSubviews method and adjust the layout using the view’s bounds rectangle. In iOS 6, the viewWillUnload and viewDidUnload methods of UIViewController are now deprecated. If you were using these methods to release data, use the didReceiveMemoryWarning method instead. You can also use this method to release references to the view controller’s view if it is not being used. You would need to test that the view is not in a window before doing this. Calling any of the NSString drawing methods without specifying a value for the NSFontAttributeName attribute is likely to throw an exception. The workaround is to set a value for the NSFontAttributeName key before drawing or sizing an NSAttributedString object. Setting values for the shadowOffset or shadowColor properties of a UILabel object whose attributedText property contains a valid attributed string is unsupported. Use the NSShadowAttributeName attribute of the attributed string to set the shadow instead. The NSTextAlignmentNatural value is unsupported and will be removed in a future seed. Safari & WebKit WebKit on iOS now supports the requestAnimationFrame and cancelAnimationFrame methods in JavaScript, as described here Timing control for script-based animations. Note that because the specification is still at the Working Draft state, these methods have the webkit prefix, so they are window.webkitRequestAnimationFrame, window.webkitCancelAnimationFrame. The default app cache quota has been increased from 5MB to 25MB. The JPEG subsampling threshold was increased from 2 MP (megapixels) to 5 MP on all supported hardware except iPhone 3GS and iPod touch (4th gen). Support has been added for tags in web forms. Users can upload existing photos and videos from their photo library or take a picture or video using the camera. Previously this form control was always disabled. With Safari 6.0 on OS X, developers can now use the Web Inspector (web development tool) with attached iOS devices and iOS Simulator. Developers can use the Web Inspector to debug Safari and the UIWebView class in their own apps built and run from Xcode. This replaces the Debug Console banner in Safari. In iOS 6 and later, web data (SQL Web Storage and LocalStorage) from a UIWebView object can be stored in a directory that will be backed up. To enable backing up this data, set the WebKitStoreWebDataForBackup key to YES in your app’s user defaults. This should be done only if your app relies on web content data that cannot be reloaded. If your UIWebView object opens links to arbitrary web content, this key should be set to NO. Toggling the value of this key will not preserve existing web view data. In iOS 6 and later, Safari no longer registers for the common RSS/ATOM scheme feed:. Apps that can view those types of feeds are encouraged to register for that URL scheme. In iOS 6 beta 1, Smart App Banners in Safari show App Store information for an app above web content. In this seed, the app launching UI and functionality portion of Smart App Banners is not available. User Experience Users may notice that the key clicking sounds are skipped during fast typing. Displaying a keyboard in landscape, then rotating the device to portrait will result in a badly positioned keyboard. Dismissing the keyboard then bringing it back in in portrait should resolve the issue. The problem affects only iOS 6 beta 1 and will be fixed in subsequent release.