Apple has been releasing new updates steadily since the first developer build of iOS 8 was let loose on June 2nd, and iOS 8 beta 4 couldn’t come soon enough considering how buggy beta 3 has been. Now, the latest and greatest iOS 8 build for developers — and anyone else who pays Apple $99 each year for a developer account — is available for download, just as our inside sources said it would be.
FROM EARLIER: Cutting through the hype: The 5 best new features in iOS 8
iOS 8 beta 4 is available immediately for developers with iPhone, iPad and iPod touch devices that are compatible with the new iOS 8 software. As always, it can be installed as an over the air (OTA) update for devices that are already on a beta build, or it can be downloaded from Apple’s developer portal and installed with iTunes once Apple’s website is updated.
The new software addresses several annoying bugs from earlier iOS 8 beta releases, and it adds some nifty new features as well. We’ll update this post with Apple’s full release notes / change log as soon they’re sent to us.
For non-developers who have an iOS 8 beta installed, iOS 8 beta 4 will fix certain problems but many more will remain. As such, you might want to consider rolling back to the latest version of iOS 7.1 until the final version of iOS 8 is released to the public in September.
For more on iOS 8, read our preview: A week with iOS 8
UPDATE: Apple’s full change log / release notes follow below.
Known Issues
Use of the AVCaptureDevice method rampToVideoZoomFactor:withRate: will fail.
Use of the new constant, AVCaptureISOCurrent, will result in inconsistent ISO values (as observed on the ISO property) if setExposureModeCustomWithDuration:ISO:completionHandler: is called repeatedly.
In some configurations, the maxBracketedCaptureStillImageCount property on AVCaptureStillImageOutput will yield incorrect results.
Backup and Restore
Known Issue
A restoration of an iCloud backup onto the same device the backup was taken from may not work properly. It may result in crashes of some apps.Workaround: If you want to completely wipe the data from a device and restore it, use iTunes to backup and restore instead of iCloud.
CarPlay
Known Issue
The Now Playing screen is missing the Back button in the top-left corner.CloudKit
Known Issue
Clients sending multiple simultaneous record update requests to the same zone in the private database may encounter CKErrorZoneBusy errors.Workaround: Clients should send update requests for a given zone one at a time. In addition, they should handle CKErrorZoneBusy errors by retrying with an exponential back off.
Contacts
Notes
The Address Book UI people picker has been changed for iOS 8. A new mode with new API has been added where the app does not need access to the user’s contacts and the user will not be prompted for access. A temporary copy of the selected person is returned to the app. See ABPeoplePickerNavigationController.h for more details.As of iOS 8 beta 2, you must use the new mode. The old mode has been deprecated.
See the new PeoplePicker: Picking a Person or Property sample project demonstrating usage of the new mode.
Document Providers
Note
Your app needs the iCloud entitlement to be able to be used as a document provider.Fixed in beta 4
Auto Layout does not currently provide direct support for the UIView layoutMargins property.
Document provider extensions sometimes crash when trying to import a document from a document provider view controller.
Selecting a file in a document picker twice in a row may cause the document picker to hang.
Workaround: Force quit the app.After deploying a FileProvider via Xcode, your documentStorageURL may be nil and cause your extension to crash.
Known Issues
App icons in the document picker do not show up on iPhones and iPads.
Document providers may hang when importing files.
After rotating document picker to landscape, the status bar is hidden.
Upon bringing up document picker in landscape, the containing view may be shifted beneath the navigation bar.
Extensions
Fixed in beta 4
Extensions sometimes fail to launch when debugging from Xcode.
When Extension with UI is killed, it relaunches and is not dismissed.
Sometimes your Sharing or Action extension can hang.
Redeploying an extension may disable it in Notification Center.
Known Issues
Using xpc_service_set_attach_handler to profile app extensions for keyboard does not work.
Workaround: Run your app extension in Simulator, then trigger the Keyboard extension to load and attach to the running instance (for example, com.thirdparty.foo.keyboard (123)) from Instruments’ target chooser.Application extensions may behave unpredictably with respect to location access.
After redeploying an app, the Today view extension may not be launched, and sometimes its bundle display name becomes the name of the app.
Workaround: Reboot the device.FaceTime
Known Issue
FaceTime does not work properly in landscape orientation.Family Sharing
Known Issues
Shared purchase history page on Mac App Store and iOS App Store are disabled.
Items already owned by family members must be re-downloaded from the Purchased page (not Store pages) to get them free of additional charge.
File System
Note
The file system layout of app containers has changed on disk. Rather than relying on hard-coded directory structure, use the NSSearchPathForDirectoriesInDomains function or the URLForDirectory:inDomain:appropriateForURL:create:error: method of the NSFileManager class. See Accessing Files and Directories in File System Programming Guide.Find My Friends
Note
Now that the Share My Location feature is integrated into Messages, Find My Friends only supports the Apple ID configured in Settings > iCloud.Fonts
Note
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:Use UILabels as 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.
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.
Fixed in beta 4
Some Hindi strings are incorrectly displayed, causing search and rendering issues.Game Center
Fixed in beta 4
Swiping or tapping a Game Center friend request notification anywhere automatically accepts the friend request.Handoff
Note
Handoff is incompatible between devices using this beta and the prior beta. You should test Handoff with the most recent beta software because it is not backward-compatible with previous betas.HealthKit
Notes
Any blood type that was set in Medical ID prior to beta 3 will be cleared.
The pairing UI for BTLE health devices has been removed from Health and is now available in Settings > Bluetooth.
The HKWorkout API is now available to store workouts.
HKQuantityTypeIdentifierGalvanicSkinResponse has been renamed HKQuantityTypeIdentifierElectrodermalActivity.
The following HKObjectType identifiers have been removed:
HKQuantityTypeIdentifierRRInterval
HKQuantityTypeIdentifierHeatFlux
HKCorrelationTypeIdentifierHeartRateReading
Fixed in beta 4
BTLE health devices will pair, but data will not be saved to HealthKit.iAd
Known Issue
iAd videos may not play in NPR HLS station.iCloud Drive
Notes
All containers used by CloudKit applications will be emptied.
Document storage containers created using the UIDocument class in iOS 7 are not yet available for use with iCloud Documents through Xcode 6 beta or in the Certificates, Identifiers & Profiles section of Member Center. These containers will be migrated in an upcoming beta and associated with your existing App IDs.
Fixed in beta 4
iCloud Drive may not be correctly enabled on a second device after signing in via Buddy or Settings.Known Issue
URLForUbiquityContainerIdentifier: might return nil when running your application in Xcode. If so, open System Preferences, navigate to iCloud > iCloud Drive, and enable Xcode.iCloud Keychain
Fixed in beta 4
After changing an iCloud account password, you may notice an “iCloud Keychain has been reset” message.Known Issues
Initial sync does not work if the approving device is locked when the approval occurs.
Workaround: Toggle keychain off and then on again.Using the recovery option can leave you in a state where new items added to the keychain do not sync.
Workaround: Use approval method with other devices unlocked.Keyboards
Fixed in beta 4
If an iPad is restored while in landscape, it may end up with an offscreen keyboard in certain views.
Workaround: Reboot the device.There is a known performance issue, which is evident as a time lag between viewDidLoad and the textDidChange callbacks firing.
Known Issues
If you turn off predictive text in one app and then turn it back on in another, it may not actually be reactivated.
Caps Lock may be unexpectedly enabled in text input fields.
Workaround: Press the Shift key three times.Localization
Known Issue
The following have English strings that are not properly localized in other languages:VoiceOverTouch
Sharing
ManagedConfiguration
AirPortAssistant
MapKit
SpringboardUIServices
AccessibilityBundles
Music
Lock Screen
Fixed in beta 4
Location-based recommended apps will not display on the lock screen.Messages
Fixed in beta 4
If you have Send As SMS enabled in Messages settings, the Messages app may periodically become unresponsive.Metal and OpenGL
Known Issue
Shadow samplers are broken when using linear filtering.Workaround: For OpenGL, set GL_TEXTURE_MIN_FILTER and GL_TEXTURE_MAG_FILTER to GL_NEAREST. For Metal, set the mag_filter and min_filter sampler properties to nearest in the shader source.
Music
Known Issue
The Music app may stop responding when downloading an album.Newsstand
Fixed in beta 4
Content downloaded via NKAssetDownload doesn’t get returned to the app.Notification Center
Note
The schedule and intended use of widgetPerformUpdateWithCompletionHandler: is intended 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.NSURLSession
Note
Beginning in iOS 8 beta 2, the NSURLSessionTask class provides a new “priority” property with three associated constants: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow, and NSURLSessionTaskPriorityHigh. NSURLSessionTask priorities 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 NSURLSessionTask performance.For complete usage details of NSURLSessionTask priorities, refer to the NSURLSession.h header file, which is provided by the Foundation framework.
Phone
Notes
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.
Fixed in beta 4
Call UI may appear on top of the home screen when it is originated from the app switcher.Photos
Fixed in beta 4
After upgrading to beta 3, your device may get stuck while uploading photos to iCloud.
If both iCloud Photos and Photostream are enabled, duplicate photos are displayed.
Notes
You need to upgrade to beta 3 to use iCloud Photo Library. Betas 1 and 2 no longer support this feature.
Back up your photo libraries before enabling iCloud Photo Library by:
Importing to your Mac using iPhoto
Importing to your Mac using Image Capture
Enabling iCloud Photo Library will not add photos/videos that have been synced with iTunes to the cloud.
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.
Known Issues
The ability to automatically optimize device space is not enabled in this beta.
When using iCloud Family, both iCloud Photos and My Photostream are enabled.
After restore from iCloud backup, modified photos may show unmodified thumbnails.
If you reach your iCloud quota, there is no way to add or delete data within the Photos app.
Safari
Notes
Safari now blocks ads from automatically redirecting to the App Store without user interaction. If you still see the previous behavior, or find legitimate redirection to the App Store to be broken in some way, please file a bug.
You can now quickly add a site to Shared Links or save a bookmark by tapping and holding on the bookmarks button.
Setup
Fixed in beta 4
Upon upgrade install, Touch ID is disabled for iPhone unlock.Workaround: Enable iPhone Unlock option in Settings > Touch ID & Passcode.
Known Issue
Updating the iCloud settings screen may appear to hang during setup.Workaround: Some accounts may have an extra long lag. Wait a couple of minutes and they should complete.
Siri
Fixed in beta 4
Speaking “Hey, Siri” may fail to launch Siri for subsequent requests if you leave the UI by tapping the home button while Siri is still speaking.
Workaround: Re-launch Siri with the home button, speak your request, and do not exit the UI until Siri finishes speaking.The “Hey, Siri” feature is not available when Japanese is selected in Settings > General > Siri > Language.
Springboard
Fixed in beta 4
SpringBoard will crash when a device is locked while viewing a folder.Workaround: Exit folder before locking the device.
Known Issue
Some projects may launch in portrait when the destination device is in landscape.Workaround: Rotate the device to portrait and back to landscape to continue in landscape.
Stores
Known Issue
Sometimes, loading certain pages or performing a search on the App Store or iTunes Store can be slow.UIKit
Note
UILabel has a default value of YES for clipsToBounds. This differs from the normal UIView default of NO.Fixed in beta 4
If an app is using a xib as its main window and is launched in landscape iPad, the main window will have the incorrect dimensions, causing significant distortion and difficulty using presented view controllers. To function again, an app may have to be force-quit after presenting a system view controller.Known Issue
When the width of a multiline label changes due to changes in the layoutMargins of some view, the intrinsic content size of the label is not invalidated when it should be. As a result the layout can unexpectedly truncate the label (or text view).Workaround: The view whose layoutMargins are changing should override layoutMarginsDidChange and send invalidateIntrinsicContentSize to the label.
Weather
Fixed in beta 4
On iPhone 4S, Weather is missing its background color, letting the wallpaper see behind the condition animations.WebKit
Notes
Subpixel rendering is now on by default for all web content. Websites or in-app web views with extremely tight design constraints may render differently. Solutions for each issue will vary, but use Web Inspector to adjust position, border thickness, and width or height of elements.
In iOS 8.0 beta 2 and later, CSS object model getters (offset{Left|Top|Width|Height} and client{Left|Top|Width|Height}) return fractional double values based on subpixel metrics instead of rounded integral values.
The minimal-ui viewport property is no longer supported in iOS 8.
Fixed in beta 4
When passing information from a UIWebView back to a native app using a custom URL scheme, the URL must be well formed or WebKit will not issue a load request, and thus the webView:shouldStartLoadWithRequest:navigationType: UIWebViewDelegate method will not be called.
If you pass NULL for the fqdn parameter of SecRequestSharedWebCredential as recommended, only the first domain in the entitlement is used.