iOS 8.2 is on its way but it looks like Apple is still trying to work out some critical issues. The company on Monday released iOS 8.2 beta 5, which is available as an over-the-air update that will bring bug fixes and assorted improvements.
Apple first released iOS 8.1 back in October and was the first major iOS release since the disastrous release of iOS 8.0.1 a month earlier. Apple has been taking its time with iOS 8.2 so hopefully it will be comparatively bug-free when it finally releases.
Here are the full release notes for the latest beta:
iOS SDK Release Notes for iOS 8.2 Beta 5
iOS SDK 8.2 provides support for developing iOS apps. The SDK is packaged with a complete set of tools, compilers, and frameworks for creating apps for iOS and OS X. The tools include the Xcode IDE and the Instruments analysis tool, among many others.
With this software, you can develop apps for iPhone, iPad, or iPod touch running iOS 8. It now includes WatchKit, a framework for developing Apple Watch apps. You can test your apps using the included iOS Simulator. iOS SDK 8.2 requires a Mac computer running OS X v10.9.3 (Mavericks) or later.
This version of iOS is intended for installation only on devices registered with the Apple Developer Program. Attempting to install this version of iOS in an unauthorized manner could put your device in an unusable state.
For issues not mentioned in the Notes and Known Issues section, please file bugs through the Apple Developer website (https://developer.apple.com/bug‑reporting/ios/). Additionally, you may discuss these issues and iOS SDK 8.2 in the Apple Developer Forums: http://devforums.apple.com. To get more information about iCloud for Developers, go to http://developer.apple.com/icloud.
Notes and Known Issues
The following issues relate to using iOS SDK 8.2 to develop code.
App Extensions Notes
App extensions need an arm64 slice to run on 64‑bit devices. If you try to run the armv7 slice on a 64‑bit device it won’t work. Apps need to have an arm64 slice if the bundle contains a framework that both the app and the app extension link against.
Fixed in beta 5 3rd party calendar sync does not work in this beta.
A single CKAssetinstance can no longer be set as a value on multiple CKRecordobjects.
Document Providers Notes
Your app needs the iCloud entitlement to be able to be used as a document provider. The com.apple.developer.icloud-container-identifiersentitlement is required.
After rotating the document picker to landscape, the status bar is hidden. Upon bringing up the document picker in landscape, the containing view may be shifted beneath the navigation bar.
File System Note
The file system layout of app containers has changed on disk. Rather than relying on hard‑coded directory structure, use the NSSearchPathForDirectoriesInDomainsfunction or the URLForDirectory:inDomain:appropriateForURL:create:error:method of the NSFileManagerclass. See Accessing Files and Directories in File System Programming Guide.
The Thai system font has increased in size to improve readability. This will cause clipping in many places in your UI if you don’t take appropriate action:
1. Use UILabelas much as possible. If you use Interface Builder, make sure that Clip Subviews is not checked. UIKit will grow the clipping region as necessary to not clip text.
2. Use Dynamic Type. This will ensure that you do not have overlapping glyphs in multiline labels or text fields.
If you can’t do 1 and 2 because you implement your own views, you must implement measures not to clip. You can use CoreText to figure out the appropriate clipping region for a line of text by calling: CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents); To avoid overlapping glyphs in multiline text elements, adjust the line height. An additional 30% is recommended.
This measure will also help your app perform better in other languages, including Arabic, Hindi, and Vietnamese.
HKUserPreferenceDidChangeNotificationhas been renamed HKUserPreferencesUpdatedNotification.
Some information encoded using moles in previous releases may not be be decoded correctly with this beta. iCloud Note Mail handoff and AirDrop may stop working after changing your iCloud password at appleid.apple.com. Workaround: Sign out and back into iCloud on the device.
iCloud Drive Note
URLForUbiquityContainerIdentifier:might return nil when running your application in Xcode. If so, open System Preferences, navigate to iCloud > iCloud Drive, and enable Xcode. Music Fixed in beta 5 Music playback from iTunes in the Cloud does not work in this beta.
Notification Center Note
The schedule and intended use of widgetPerformUpdateWithCompletionHandler:is as a convenient home for all data/model update logic. If implemented, the system will call at opportune times for the widget to update its state, both when Notification Center is visible, as well as in the background. An implementation is required to enable background updates. It’s expected that the widget will perform the work to update asynchronously and off the main thread as much as possible. Widgets should call the argument block when the work is complete, passing the appropriate NCUpdateResult. Widgets should NOT block returning from viewWillAppear:on the results of this operation. Instead, widgets should load cached state in viewWillAppear:in order to match the state of the view from the last viewWillDisappear:, then transition smoothly to the new data when it arrives.
The NSURLSessionTaskclass provides a new “priority” property with three associated constants: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow, and NSURLSessionTaskPriorityHigh. NSURLSessionTaskpriorities can be used to specify how multiple requests and responses to the same host should be prioritized. Note that the priority is a hint and not a strict guarantee of NSURLSessionTaskperformance. For complete usage details of NSURLSessionTaskpriorities, refer to the NSURLSession.hheader file, which is provided by the Foundation framework.
To activate Wi‑Fi Calling functionality for T‑Mobile (U.S. only), follow these steps:
Go to Settings > Phone > Wi‑Fi Calling. Toggle the Wi‑Fi Calling switch to ON. If the carrier does not have the user’s registered emergency address, you will be asked to add it before the feature is activated.
Maintain a backup of your photo library before enabling and while using iCloud Photo Library beta by:
- Importing to your Mac using iPhoto
- Importing to your Mac using Image Capture iCloud Photo
Library beta will not download photos and videos that were synced to your device from iTunes. Any photos and videos synced to your device from iTunes will be removed when you enable iCloud Photo Library beta. iPhoto for iOS will not launch on iOS 8 beta. Launching Photos.app will migrate your iPhoto edits to the iOS 8 Photo Library. Make sure your iPhoto for iOS data is included in your device backup. The ability to automatically optimize device space is enabled for all accounts larger than 5GB. When using iCloud Family Sharing, both iCloud Photo Sharing and My Photo Stream are enabled.
UI Label has a default value of YES for clips ToBounds. This differs from the normal UIView default of NO. The left Layout Guide and right Layout Guide APIs have been removed. Please use the layoutMarginsproperty instead.
Settings bundles are now supported for WatchKit extensions running in iOS Simulator. The Apple Watch app displays the controls you specify in your settings bundle. To learn how to create a settings bundle for your WatchKit extension, see Settings in Apple Watch Programming Guide.
WKInterfaceSwitchnow has setTitle:and setAttributedTitle:methods.
WKInterfaceControllernow has an invalidateUserActivitymethod that may be called to clear out any user activity state previously set
WKInterfaceImageand WKInterfaceGroupallow setting a negative duration for playback. A negative duration causes the animation to play back in reverse, starting from the end of the range and ending at the beginning. The WKInterfaceControllermethod updateUserActivity:userInfohas been deprecated. Please use updateUserActivity:userInfo:webpageURL:instead.
The WKInterfaceMapAPI has changed. Specifically, setMapRect:and setCoordinateRegion:have been replaced by setVisibleMapRect:and setRegion: respectively.
The WKInterfaceControllermethod initWithContext:has been deprecated. Please use awakeWithContext:instead. The designated initializer for WKInterfaceControlleris now init. The WKInterfaceDeviceAPI has changed. Specifically, addCachedImage:name:and addCachedImageWithData:name:now return BOOLto indicate the success or failure of adding an image to the cache. Note that these methods return NO if the cache size has reached its limit.
Delete images from the cache by calling removeCachedImageWithName:or removeAllCachedImages. A page‑based WatchKit app can dynamically resequence the pages at the root level using reloadRootControllersWithNames:contexts:.
Rows in a WKInterfaceTablenow have a default appearance. This appearance can be overridden by specifying the values for background color, margin, corner radius, and height for the row in Interface Builder. The method setColor:on WKInterfaceButtonhas changed to setBackgroundColor:.
Calling the WKInterfaceControllermethod openParentApplication:reply:multiple times without waiting for a return from the first call will fail the first time and may cause multiple replies to be delivered to the wrong reply handler.
Workaround: Wait for a reply before calling openParentApplication:reply:again.
Creating an animated image using the UIImagemethod animatedImageWithImages:duration:and then playing the animation using startAnimatingignores the duration and plays back as fast as possible.
Workaround: Use startAnimatingWithImagesInRange:duration:repeatCount:instead. Inserting, deleting, or updating rows of a WKInterfaceTablemay cause the table to temporarily size incorrectly. Scrolling your interface controller should restore the table to the proper size. SecRequestSharedWebCredentialAPI calls will always give a ‑909 Autofill disabled error. WKInterfaceSwitchdoes not reflect the color you set using setColor:.
Wi‑Fi Calling (T‑Mobile US only) Note
The carrier name in the status bar will show “T‑Mobile Wi‑Fi” when the device is able to make and receive Wi‑Fi calls.