iOS SDK 9.1 beta provides support for developing iOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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 9. You can also test your apps using the included Simulator, which supports iOS 9. iOS SDK 9.1 requires a Mac computer running OS X v10.10.3 (Yosemite) 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.
By default, the iOS 9.1 beta automatically sends anonymous diagnostic and usage data back to Apple. This includes information about crashes, freezes, kernel panics, and information about how you use Apple and third-party software, hardware, and services. This information is used to help Apple improve the quality and performance of its products and services. You can stop autosubmission of diagnostics and usage data by going to Settings > Privacy > Diagnostics and Usage > Don’t Send.
During the iOS 9.1 Beta, iCloud Keychain for iCloud accounts with two-factor authentication enabled will use beta servers. If you do not want your iCloud Keychain data stored on beta servers, do not use the beta software.
Known Issues
Sometimes while setting up iCloud Keychain, you recieve a "Could Not Set Up iCloud Keychain" error.
Workaround: Reboot the device.
If you disable Two-Factor Authentication on your iCloud account, your iCloud Keychain may also get turned off.
Workaround: Confirm that your Keychain is still on in Settings after disabling Two-Factor Authentication.
When activating Keychain in Settings on iPad, you may be unable to complete the activation.
If you have an account with Two-Factor Authentication and set up iCloud Keychain, it may not succeed if you take a few minutes to get through Setup Assistant.
Workaround: Go back to the beginning of Setup Assistant and sign into iCloud again.
If you had been using a Random Security Code for your Keychain before upgrading to iOS 9.1 Beta, tapping “Back” when prompted to enter your security code in Setup Assistant may result in a sign-in failure.
Workaround: Go back to the beginning of Setup Assistant and sign into iCloud again.
If you change your device passcode while in Airplane Mode, you iCloud Keychain may cease to sync with other devices.
Keyboards
Known Issue
3rd party keyboards don’t appear in sharing sheets and action sheets.
Workaround: Use the Apple keyboard.
PhotoKit
Known Issue
If you add a PHLivePhotoView to an app UI in Interface Builder, it might end up as a regular UIView object at runtime.
Workaround: Declare a dummy PHLivePhotoView subclass in your code:
If you try to play the last item in a list, Podcasts may crash.
Restore
Known Issue
If you’ve set a region that doesn’t match your language, restores from iCloud Backup might not progress.
Workaround: During restore, change your region to match your language. You can change it back after the restore is over.
UIKit
Note
On 3D Touch capable devices, touch pressure changes cause touchesMoved: to be called. This is true for all apps running on iOS 9.0. When running iOS 9.1, it is true only for apps linked with the iOS 9.0 (or greater) SDK.
Apps should be prepared to receive touch move events with no change in the x/y coordinates.
iOS SDK 9.1 beta provides support for developing iOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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 9. You can also test your apps using the included Simulator, which supports iOS 9. iOS SDK 9.1 requires a Mac computer running OS X v10.10.3 (Yosemite) 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.
By default, the iOS 9.1 beta automatically sends anonymous diagnostic and usage data back to Apple. This includes information about crashes, freezes, kernel panics, and information about how you use Apple and third-party software, hardware, and services. This information is used to help Apple improve the quality and performance of its products and services. You can stop autosubmission of diagnostics and usage data by going to Settings > Privacy > Diagnostics and Usage > Don’t Send.
During the iOS 9.1 Beta, iCloud Keychain for iCloud accounts with two-factor authentication enabled will use beta servers. If you do not want your iCloud Keychain data stored on beta servers, do not use the beta software.
Known Issues
Sometimes while setting up iCloud Keychain, you recieve a "Could Not Set Up iCloud Keychain" error.
Workaround: Reboot the device.
If you disable Two-Factor Authentication on your iCloud account, your iCloud Keychain may also get turned off.
Workaround: Confirm that your Keychain is still on in Settings after disabling Two-Factor Authentication.
When activating Keychain in Settings on iPad, you may be unable to complete the activation.
If you have an account with Two-Factor Authentication and set up iCloud Keychain, it may not succeed if you take a few minutes to get through Setup Assistant.
Workaround: Go back to the beginning of Setup Assistant and sign into iCloud again.
If you had been using a Random Security Code for your Keychain before upgrading to iOS 9.1 Beta, tapping “Back” when prompted to enter your security code in Setup Assistant may result in a sign-in failure.
Workaround: Go back to the beginning of Setup Assistant and sign into iCloud again.
If you change your device passcode while in Airplane Mode, you iCloud Keychain may cease to sync with other devices.
Keyboards
Known Issue
3rd party keyboards don’t appear in sharing sheets and action sheets.
Workaround: Use the Apple keyboard.
PhotoKit
Known Issue
If you add a PHLivePhotoView to an app UI in Interface Builder, it might end up as a regular UIView object at runtime.
Workaround: Declare a dummy PHLivePhotoView subclass in your code:
If you try to play the last item in a list, Podcasts may crash.
Restore
Known Issue
If you’ve set a region that doesn’t match your language, restores from iCloud Backup might not progress.
Workaround: During restore, change your region to match your language. You can change it back after the restore is over.
UIKit
Note
On 3D Touch capable devices, touch pressure changes cause touchesMoved: to be called. This is true for all apps running on iOS 9.0. When running iOS 9.1, it is true only for apps linked with the iOS 9.0 (or greater) SDK.
Apps should be prepared to receive touch move events with no change in the x/y coordinates.
iOS SDK 9.0 provides support for developing iOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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 9. You can also test your apps using the included Simulator, which supports iOS 9. iOS SDK 9.0 requires a Mac computer running OS X v10.10.3 (Yosemite) 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.
By default, the iOS 9 beta automatically sends anonymous diagnostic and usage data back to Apple. This includes information about crashes, freezes, kernel panics, and information about how you use Apple and third-party software, hardware, and services. This information is used to help Apple improve the quality and performance of its products and services. You can stop autosubmission of diagnostics and usage data by going to Settings > Privacy > Diagnostics and Usage > Don’t Send.
Notes and Known Issues
The following issues relate to using iOS SDK 9.0 to develop code.
Accessories
Fixed in Beta 5
Lightning video dongles don’t work with this beta.
App Store
Note
iOS 9 enforces the UILaunchImages requirement; apps can no longer declare the same launch image to support different interface orientations.
Known Issue
Users might be prompted twice for credentials on the first In-App Purchase.
Apple ID
Note
Some users will be offered the option to upgrade their Apple ID to use two-factor authentication. For more information about two-factor authentication see developer.apple.com/support/two-factor-authentication. Two-factor authentication is not supported on iOS 9 betas prior to beta 3.
Fixed in Beta 5
You may not be able to create a new Apple ID in Settings or Setup Assistant.
Workaround: Create a new iCloud account on iCloud.com.
You cannot manage your two-factor authentication trusted devices at appleid.apple.com.
Workaround: You can find and manage trusted devices in Settings > iCloud > yourName > Devices.
Removing a device from your account removes it as a trusted device for two-factor authentication, but will not sign out of any services or permanently remove it from the device list.
Workaround: To fully remove a device, click Remove From Account then sign out of iCloud in device Settings of the device you want to remove.
Known Issues
iForgot links may work intermittently.
Workaround: Please try again.
If you upgrade your Apple ID to use two-factor authentication, iTunes purchases on Mac and Windows and store purchases on Apple TV will require you to append a six-digit verification code to the end of your password on every purchase. The six-digit code will display automatically on your iOS 9 or OS X El Capitan devices, or can be sent to your trusted phone number via a text message or phone call.
If your Apple ID uses two-factor authentication, you may not be able to sign in to services that use Apple ID on iOS 9 and OS X El Capitan beta installations earlier than beta 3.
If you disable two-factor authentication and set a new password at iForgot.apple.com, the password requirements are not indicated so your password may not be accepted.
Workaround: Make sure your password meets these requirements:
Have at least one lowercase letter
Have at least one uppercase letter
Have at least one number
Your password must not contain more than two consecutive identical characters
Not be the same as the account name
Be at least 8 characters
Not be a common password
AVFoundation
Notes
The canUseNetworkResourcesForLiveStreamingWhilePaused property has been added to AVPlayerItem. The default value is NO for apps linked on or after iOS 9.0 or OS X 10.11, but YES for apps that were linked earlier.
To minimize power usage, set this property to NO if you do not need playback state to stay up to date while paused.
AVQueuePlayer now supports a mixture of file-based media and HTTP Live Streaming media in its queue. Prior to this, you had to ensure that all items in the queue were of the same type.
For apps linked against iOS 9 or later, the media interruption behavior for AV(Queue)Player has changed.
Before iOS 9, apps could interrupt other media-playing clients by associating or adding AVPlayerItem to AVPlayer or by modifying the time or date of the current AVPlayerItem (using the seekToTime: or seekToDate: methods). In iOS 9, these operations interrupt only when AVPlayer object’s playback rate is changed to a non-zero value through the rate property or play method.
Picture in Picture playback might stop and the Picture in Picture button might disappear when using AVPlayerViewController for video playback and replacing the underlying AVPlayer object’s current item usingreplaceCurrentItemWithPlayerItem:.
The AVPictureInPictureController interface and the cancelPictureInPicture method are deprecated.
Calendar
Fixed in Beta 5
Calendar may hang if you tap Ignore on a suggested event.
CarPlay
Fixed in Beta 5
The Home button may not always work.
Known Issue
The navigation bar in Maps can sometimes get into a state where it is inaccessible.
CBCentralManager
Note
The retrievePeripherals: and retrieveConnectedPeripherals methods were deprecated in iOS 7.0 and removed in iOS 9.0. Apps that use these methods will crash on launch or upon pairing an accessory.
Enterprise
Note
iOS 9 adds support for TLS v1.2 in 8021.X authentication. Authentication servers that support TLS v1.2 may require an update for compatibility. If you are using FreeRADIUS, update to version 2.2.7 or 3.0.8. If you are using Aruba ClearPass update to version 6.5.2. If you are using other Aruba products, update to ArubaOS 6.4.2.9.
Foundation
Notes
There is new Foundation API that can be used to detect if the device is in Low Power Mode. See the updated Energy Efficiency Guide for iOS Apps for details.
Horizontal location constraints should consistently reference either left/right or leading/trailing attributes. For apps linked against the iOS 9 SDK, NSLayoutConstraint will throw an exception if you attempt to create a constraint between a leading/trailing attribute and a left/right attribute.
HealthKit
Known Issue
In rare circumstances, it is possible for the health database to be deleted during an upgrade to a beta build.
Workaround: To make sure the health database is not lost, make an encrypted iTunes backup prior to installing this beta.
Although keeping the device unlocked for the duration of the upgrade process reduces the risk of the database being destroyed, it’s recommended that you create a backup so that you can recover the database if you encounter this issue.
Home Sharing
Fixed in Beta 5
If you have an empty music library, you will be unable to enable or disable Home Sharing in Music.
The Home Sharing option doesn't always appear in My Music.
Russian, Turkish, and Korean QuickType keyboards require iOS 9 beta 2 or later.
Fixed in Beta 5
If you use a complex passcode on an iPad, some panes in Settings will now show the keyboard.
Keychain
Note
iCloud Keychain will not sync passwords & credit cards with previous betas of iOS 9 and OS X El Capitan.
Fixed in Beta 5
You may not be able to accept a Suggested Password when creating a new account.
You may be unable to join an existing iCloud Keychain circle using iCloud Security Code and SMS Verification Code.
After changing your iCloud password, you may see an “iCloud Keychain Reset” prompt.
If you have two-step verification enabled on your AppleID and then change your iCloud Keychain or iCloud Security Code on a non-trusted device, you see a “Verification Failed” error.
If your iCloud account uses two-factor authentication, you will get a sign-in alert on all logged-in iOS 9 or OS X El Capitan devices whenever there is a change in the phone number in Settings > iCloud > Keychain > Advanced.
Mail
Known Issue
A Yahoo mail account may periodically display “Cannot get mail.”
Maps
Known Issue
If you use Siri to get driving, walking, or transit directions, you may see a failure with a dialog that says “Current Location not Available.”
Workaround: Toggle Wi-Fi and then try again. Alternatively, get directions in Maps directly without using Siri.
Messages
Fixed in Beta 5
When recording audio messages, the audio glyphs are not shown. This occurs in both quick reply and in the Messages app.
When you send an audio message, it may be difficult to begin playback.
Music
Note
When users plug in headphones or connect to Bluetooth or CarPlay in their car, their favorite music app appears on the lock screen or the car display.
For your app to be eligible for this, it must publish to Now Playing upon launch and consistently maintain a Now Playing state. A common practice upon launch is to continue playing the track from when the app was last exited.
Known Issues
The share sheet may not appear when sharing tracks from Apple Music.
The New tab may not load if you are not signed into Apple Music.
Networking
Note
When negotiating a TLS/SSL connection with Diffie-Hellman key exchange, iOS 9 requires a 1024-bit group or larger. These connections include:
Secure Web (HTTPS)
Enterprise Wi-Fi (802.1X)
Secure e-mail (IMAP, POP, SMTP)
Printing servers (IPPS)
Photo Booth
Fixed in Beta 5
Photos taken with Photo Booth are not saved.
ReplayKit
Known Issue
Playing a video while ReplayKit recording is ON will stop ongoing recording session and video will fail to play.
Safari
Fixed in Beta 5
Fixed a bug where calling reloadContentBlockerWithIdentifier:completionHandler: returned an error when running on a physical device.
Notes
When Done is tapped in a SFSafariViewController, it is automatically dismissed. You no longer need to dismiss it in the delegate method safariViewControllerDidFinish:.
“Find on Page” is now available both from the share sheet as well as in the Completions List.
Request Desktop Site has moved; it’s now in the Share sheet instead of Favorites.
Web Browser–to–Native App Handoff does not work with your app if the apple-app-site-association file isn’t correctly formatted and signed. For more information, see Handoff Programming Guide and Shared Web Credentials Reference.
Secure Transport
Note
DHE_RSA ciphersuites are now disabled by default in Secure Transport for TLS clients. This may cause failure to connect to TLS servers that only support DHE_RSA cipher suites. Applications that explicitly enable ciphersuites usingSSLSetEnabledCiphers() are not affected and will still use DHE_RSA ciphersuites if explicetely enabled.
Siri
Fixed in Beta 5
Siri cannot change Settings options.
Siri Eyes Free may not work.
You are unable to create, view, or edit notes using Siri.
Spotlight
Fixed in Beta 5
After upgrading to this beta, some contacts are not searchable in Spotlight.
UIKit
Notes
If initialized with a nilnibName value, UIViewController.nibName has always looked for a nib with a similar name as the view controller’s class, and defaulted to that value if loadView is not overridden.
Prior to iOS 9, subclasses of UIViewController that were written in Swift would require that their corresponding nib file name include the module prefix.
To improve flexibility in the event of refactoring, you can omit the module name from the nib file name in code that runs in iOS 9 beta 4 and later. UIViewController.nibName still prefers a name that contains the module prefix, but falls back to an unqualified name if a nib with the fully-qualified name is not found.
In iOS 9, when layoutIfNeeded is sent to a view and all of the following conditions are satisfied (which is not common), we apply fitting-size constraints (width/height = 0 at UILayoutPriorityFittingSizeLevel) instead of required size constraints (width/height required to match current size):
The receiver is not yet in the subtree of a view that hosts a layout engine, such as window, view controller view (unless you have set translatesAutoresizingMaskIntoConstraints to NO on that view—or created constraints that have one item in its subtree and one item outside it), table view cell content view, and so on.
The top-level view has a subview that is not a UIViewController-owned layout guide that also has translatesAutoresizingMaskIntoConstraints set to NO.
Under condition 1, we create a temporary layout engine from the top-level view and add all the constraints from the subtree to it. The problem is that we need to add some constraints that make the size of the top-level view unambiguous in the layout engine. The old behavior (prior to iOS 9) was that we would add constraints to restrict the size of the top-level view to its current bounds for any situation under condition 1. This really doesn’t make sense when you add conditions 2 and 3 and can result in unsatisfiable-constraints logging and broken layout.
So in iOS 9, for this special case only, we use fitting-size constraints instead.
This means that if you are sending layoutIfNeeded to a view under these conditions in iOS 9, you must be sure that either you have sufficient constraints to establish a size for the top-level view (which usually, though not always, is the receiver) or you must add temporary size constraints to the top-level view of layout size you desire before sending layoutIfNeeded, and remove them afterward.
For apps linked on iOS 9 or later, UITextView will now always correctly constrict its NSTextContainer to the fit inside the view when scrolling is disabled. Overflowing lines that lie outside of an NSTextContainer, even partially, are not rendered.
In previous iOS releases, the NSTextContainer sometimes was not constricted in size. This meant that logically overflowing lines were erroneously rendered. If you are seeing previously rendered lines at the end of your text view no longer rendered after linking your app against iOS 9, this behavior change is the likely cause. You can remedy this by making your UITextView larger, or perhaps by adjusting the bottom value of the text view's textContainerInset property.
Apps that subclass UIPrintPageRenderer or UIPrintFormatter to draw content for printing must be built with the iOS 9 SDK for the preview to display. The behavior of UIPrintPageRenderer has been updated to call drawPageAtIndex:inRect:multiple times with potentially different page sizes and margins. Various methods on UIPrintPageRenderer may be called from a non-main thread, but never from multiple threads concurrently.
UIPickerView and UIDatePicker are now resizable and adaptive—previously, these views would enforce a default size even if you attempted to resize them. These views also now default to a width of 320 points on all devices, instead of to the device width on iPhone.
Interfaces that rely on the old enforcement of the default size will likely look wrong when compiled for iOS 9. Any problems encountered can be resolved by fully constraining or sizing picker views to the desired size instead of relying on implicit behavior.
Known Issues
Instances of UIViewController classes that are defined in the UIKit library and are created with a nilnibBundle attempt to find their nib inside the UIKit framework instead of the app's main bundle.
Workaround: Pass [NSBundle mainBundle] for the nibBundle argument instead of nil.
Apps linked to versions of iOS earlier than iOS 8 may display incorrectly. Symptoms include cropping and displaying only in a small section of the screen.
Volume Purchase Program
Fixed in Beta 5
Apps that are distributed through VPP and are licensed to a device won't launch.
Watch App
Known Issue
Pairing iOS 9 beta 3 or 4 with watchOS 2 beta 1 or 2 requires you to sign out of your AppleID in Messages prior to pairing and to skip iCloud sign-in during pairing. Pairing with watchOS 2 beta 3 and watchOS 1 is not impacted.
Webkit
Note
The if-domain and unless-domain value strings only match the exact domain. To match the domain and any subdomains, begin the string with the asterisk character (*).
iOS SDK 8.3 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.3 is included in Xcode 6.3, which requires a Mac computer running OS X v10.10 (Yosemite) 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.
Xcode is the complete developer toolset used to create apps for iPad, iPhone, and Mac. The Xcode development environment bundles the Instruments analysis tool, iOS Simulator, and the OS frameworks in the form of iOS SDKs and OS X SDKs.
Highlights for Xcode 6 Beta
Xcode 6 Beta is the latest release of Apple’s integrated development environment. Xcode 6 Beta introduces new ways to design and build software, focusing on features and enhancements to improve your ability to adopt and expand upon core platform features, to design new interfaces, and to deliver high-quality applications.
Xcode 6 Beta includes Swift, an innovative new programming language, with a new interactive work area—a playground in which to experiment. Xcode 6 Beta also expands upon and extends its basic features with new live visualization capabilities.
Xcode 6 Beta includes the following highlighted features:
Swift Language
Advanced, innovative new object-oriented programming language for iOS and OS X development
Xcode 6 Features for Swift
Full support with playgrounds, a rich documentation experience, read-eval-print loop, and other advanced features
Xcode 6 Beta requires a Mac running OS X v10.9.3 (or later) or OS X v10.10. It includes SDKs for OS X v10.9, OS X v10.10, and iOS v8.0. To develop apps targeting prior versions of OS X or iOS, see About SDKs and the iOS Simulator.
Installation
Xcode 6 Beta can coexist on a Mac computer with previous versions of Xcode.
This prerelease version of Xcode is distributed as a single application bundle available from developer.apple.com to authorized seed developers in a disk image file (DMG). To install during the beta period, open the downloaded DMG file and drag the Xcode icon to your Applications folder. Upon final release, Xcode is installed through the Mac App Store.
Developer Resources
The iOS and Mac developer programs provide access to the App Store, additional support and documentation, and provisioning resources to enable testing and deployment on an iPad, iPhone, or iPod touch device. For more information visit:
For more detailed information on a release, see the complete Xcode release notes available from the Xcode Help menu.
About SDKs and iOS Simulator
A software development kit (SDK) is a collection of frameworks (libraries, headers, and resources) that represent the API for a specific iOS or OS X version. Most of the functionality your app gets from an SDK is actually provided by the host operating system, which makes the right Base SDK and OS Deployment Target settings critical for app compatibility. Xcode automatically builds with the latest SDK and targets the latest OS.
If your app doesn’t require the latest OS features, you can configure it to run on a previous version of iOS or OS X using the OS Deployment Target option in the Xcode Project settings. If your project was created in an older version of Xcode, you can let Xcode update your project. For details on this features, see Project Modernization.
For iOS, Xcode automatically switches between the iOS Simulator SDK and the device SDK, depending on where you intend to run your app. You don’t need to select these settings manually.
Project Modernization
When you open a project, Xcode evaluates it to see whether any settings should be updated. This feature provides an easy way to make sure your projects conform to the latest SDKs and best practices.
Open the issue navigator to see whether anything in your project needs to be updated. You can also select the project in the project navigator and choose Editor > Validate Settings.
If the issue navigator lists modernization issues, click the issue to see a dialog, which explains the updates that should be made and lets you perform any or all of them.
After you have clicked Perform Changes, regardless of whether you choose to make all the changes, Xcode does not show the warning again. To rerun the check, select your project in the project navigator and choose Editor > Validate Settings.
New Features in Xcode by Release
Chapter articles are listed by major revision. Minor update release information is appended in the chapter for the major revision.
Xcode 6 Beta adds support for development on OS X v10.10 and iOS 8.0.
Xcode 4.1 adds enhancements to the features and workflow of Xcode 4.0 and, when running on OS X v10.7, implements user interface features standard in OS X v10.7 such as full-screen windows.
iOS SDK 8.0 provides support for developing iOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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. You can also test your apps using the included iOS Simulator, which supports iOS 8. iOS SDK 8.0 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.
A restoration of an iCloud backup onto the same device the backup was taken from may not work properly. As a result, some apps may crash.
Known Issues
Encrypted backups to iTunes fail.
iOS 7 iCloud backups restored to an iOS 8 beta device may not properly restore photos.
CarPlay
Fixed in beta 5
The Now Playing screen is missing the Back button in the top-left corner.
CloudKit
Fixed in beta 5
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 backoff.
Contacts
Note
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.
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 UILabel 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:
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.
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
Spirometry data types are now available in HealthKit.
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 HealthKit 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
HomeKit
Note
After upgrading to beta 5, you need to reset your home configuration in Settings > Privacy > HomeKit > Reset Home Configuration.
You must sign into iCloud and enable Keychain sync to use HomeKit with this seed.
Known Issue
Siri may not immediately recognize HomeKit data changes.
Workaround: To trigger an update to Siri, edit other data used by Siri such as a contact or the name of a Reminders list.
iAd
Fixed in beta 5
iAd videos may not play in NPR HLS station.
iCloud Drive
Notes
iCloud Documents & Data created with iOS 8 Beta will be deleted from the servers at some point during this beta period. Information downloaded and not evicted from the device will remain on device and will re-sync after the data wipe occurs.
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 later and associated with your existing App IDs.
URLForUbiquityContainerIdentifier: might return nil when running your application in Xcode. If so, open System Preferences, navigate to iCloud > iCloud Drive, and enable Xcode.
Migrating to iCloud Drive will disable Documents & Data syncing for your iCloud account on iOS 7 and earlier devices, as well as OS X Mavericks and earlier Macs.
iCloud Keychain
Fixed in beta 5
Initial sync does not work if the approving device is locked when the approval occurs.
Using the recovery option can leave you in a state where new items added to the keychain do not sync.
Known Issue
Upon logging into a device with the iCloud 8 beta, other devices in your keychain circle may have their access to the circle revoked.
Workaround: Enable iCloud Keychain Sync on your other devices again.
iTunes Sync
Known Issue
Apps do not sync from a device to iTunes.
Keyboards
Fixed in beta 5
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.
Localization
Fixed in beta 5
The following have English strings that are now properly localized in other languages:
VoiceOverTouch
Sharing
ManagedConfiguration
AirPortAssistant
MapKit
SpringboardUIServices
AccessibilityBundles
Music
Maps
Known Issue
When viewed in the Simulator, the "Hybrid" view in Maps and MapKit apps does not show all of the tiles.
Metal and OpenGL
Fixed in beta 5
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
Fixed in beta 5
The Music app may stop responding when downloading an album.
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
Note
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.
Photos
Notes
iCloud Photo Library requires beta 3 or later.
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.
Quicklook
Known Issue
PDF files may not display in some applications.
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.
Settings
Known Issue
Some icons are missing in Settings and only appear after the row is tapped.
Setup
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
Known Issue
Calling contacts with Siri is supported only on devices with the latest developer seed build. Prior developer seed builds no longer support this feature.
Springboard
Fixed in beta 5
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
Notes
UILabel has a default value of YES for clipsToBounds. This differs from the normal UIView default of NO.
leftLayoutGuide and rightLayoutGuide API have been removed. Please use the layoutMargins property instead.
Fixed in beta 5
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).
To use an action sheet-style UIAlertController on iPad, the sourceView of the alert controller's popoverPresentationController must be set.
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.
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.
Known Issue
The window.outerWidth and window.outerHeight DOM properties always return 0. Other DOM properties will need to be used instead. This may affect websites that use leaf.js.
iOS SDK 8.0 provides support for developing iOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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. You can also test your apps using the included iOS Simulator, which supports iOS 8. iOS SDK 8.0 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.
Certain apps may crash on launch consistently if they came over from a Restore from Backup.
Workaround: Delete and re-download the app.
Bug Reporter
Known Issues
The switch in Developer Settings to hide Bug Reporter is not working.
Workaround: Remove it from the Notification tab in Notification Center settings.
The Bug Reporter icon does not appear on the Home Screen on iPad.
Workaround: Open the app from the Notification tab in Notification Center settings.
Camera connector
Known Issue
When attached, the camera connector is not offered as an import option.
CarPlay
Known Issues
After using Siri, audio quality goes to 24KHz regardless of where it was originally set.
CarPlay may crash when pressing the Back button when in Now Playing.
When using the knob only, the highlight can move off screen but the scroll position of view doesn't follow.
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
Note
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.
In this beta, you have the choice of using either the new mode or the old mode. The old mode will be deprecated in a future iOS 8 Beta, so you should migrate to the new mode as soon as possible.
When Extension with UI is killed, it relaunches and is not dismissed.
Certain types of media, such as those synced from iTunes, are not editable in the Photos app.
Sharing extensions are enabled by default.
Sharing extensions display the name of the project instead of the name of the target.
If a Sharing extension or an Action extension hangs, it may be necessary to kill the hosting application.
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.
Sometimes Sharing or Action extensions are not updated properly after enabling or disabling.
Workaround: Dismiss the Share sheet and relaunch it.
During a debug session, extensions may time out before loading.
Action extension view controllers do not support full-screen presentation.
Action extensions do not animate smoothly when dismissed.
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.
Under 13 account creation is disabled in this beta.
While using the iTunes Store you may experience a spinner that never completes.
Workaround: Log out and back in to iTunes to correct the issue.
Email invitations are not enabled; members can join using push notifications or via inline password entry flow.
Notifications for “Ask to Buy” are not available on older clients. After parental approval, kids will have to reinitiate the purchase.
You can't approve an “Ask to Buy” request from the requestor's iOS device.
Login to iCloud may be slow on iOS.
A blank screen may be seen after creating a family on iPad.
Workaround: Tap on other settings and then back to iCloud settings.
“Ask to Buy” and Family Notifications may not appear due to SpringBoard crashing.
Workaround: Reboot.
File Providers
Note
Your app needs the iCloud documents entitlement to be able to use the document picker.
Known Issues
After installing or modifying an existing File Provider, you may need to restart the device for it to show up in the Document Picker.
File Provider extension sometimes crashes when trying to import a document from a document picker view controller.
Import/open causes sandbox denial on first try.
Workaround: Please try again.
When using the document menu, make sure to log into iCloud to properly enable selecting iCloud Documents to return a UIDocumentViewController; from there, you may enable your File Provider extension.
File providers may hang when importing files.
File Provider extension will not load if changes are made to an existing file provider on device.
Workaround: You need to either reboot the device or delete the app and reinstall it.
Now that the Share My Location feature is integrated into Messages, Find My Friends only supports the Apple ID configured in Settings > iCloud.
Find My iPhone
Known Issue
If you disable Location Services and choose Don’t Enable when prompted on the Find My iPhone page in Setup Assistant, Find My iPhone will not be enabled.
Fonts
Known Issue
Some Hindi strings are incorrectly displayed and cause search and rendering issues.
Game Center
Known Issues
Interacting with some menus in Game Center may cause a crash.
Clicking Achievements and Challenges always opens Leaderboards.
Notifications may not go through to a second device.
Workaround: For matchmaking, use automatch.
Invites to matchmaking may get stuck on Waiting.
Workaround: Use automatch.
Swiping or tapping a Game Center friend request notification anywhere automatically accepts the friend request.
GameCenterUIService will crash if you try to send matchmaking invites multiple times.
Workaround: Use automatch.
Handoff
Known Issues
Handoff does not work properly for document-based apps.
Some apps that use Handoff will mistakenly show as Safari in the iOS lock screen and OS X Dock.
In some cases, not all devices associated with an Apple ID will pair successfully. These devices will be unable to use Handoff, Phone relay, or Tethering.
When using a Mac, Handoff may sometimes stop showing icons on other iOS and OS X devices. Powering the Mac off and then back on can sometimes work around this issue.
Handoff-based Bluetooth connections between devices may stop working after trying to use Handoff.
In some cases, using Handoff with Safari will result in an old URL being resumed instead of the current URL.
Directions and Navigation in Maps do not work with Handoff in this beta.
Phone calls to and from the Mac may sometimes not complete or send and receive audio.
HealthKit
Known Issues
HKCorrelationQuery only returns objects that were saved with correlations. It should return all data entries matching the predicate.
Blood pressure readings saved from Health will not have a correlation stored between the systolic and diastolic readings.
HomeKit
Known Issues
The “primary” property will not be available in HMService in the future.
HomeKit Bluetooth LE support is not enabled.
Siri may not immediately recognize HomeKit data changes.
Workaround: To trigger an update to Siri, edit other data used by Siri, such as a contact or the name of a Reminders list.
Pairing with the Home Kit Accessory Simulator may fail the first time you try. A second pairing attempt should resolve the issue.
A bridge accessory only supports a total of 5 services for all bridged accessories.
iCloud
Notes
Upon upgrading to iOS 8 Beta, existing iCloud Documents & Data present (not evicted) on your device are copied into special server-side containers for use during the beta period.
iCloud Documents & Data created with iOS 8 Beta will not sync with with Documents and Data managed with iOS 7, OS X Mavericks, or earlier operating systems.
iCloud Documents & Data in iOS 8 Beta will only sync with devices running iOS 8 and OS X v10.10 Developer Preview.
iCloud Documents & Data managed with iOS 7 or OS X Mavericks will remain unaffected.
iCloud Documents & Data created with iOS 8 Beta will be deleted from the servers at some point during the beta period. Information downloaded and not evicted from the device will remain on device and will re-sync after the data wipe occurs.
The UI for managing iCloud Documents & Data does not show the documents and data for iOS 8 Beta and OS X v10.10 Developer Preview. It only shows the documents and data synced with previous operating systems.
Known Issue
In some cases, signing into iCloud can take up to two minutes.
iTunes Store
Known Issues
Opening iTunes Radio URLs from the iTunes Store music grouping page display a page that asks you to upgrade to iOS 7.
The shelf is not displayed on first sign-in or first launch.
Workaround: Relaunch the store from the App Switcher.
Keyboards
Known Issues
In some cases, you may need to restart an app to get third-party keyboard input to register.
If an iPad is restored while in landscape, it may end up with an offscreen keyboard in certain views.
Workaround: Reboot the device.
Custom Keyboards do not have Network Access even after setting the RequestsOpenAccess key to YES in the plist.
Deploying a third-party keyboard multiple times may cause the system keyboard to render incorrectly or go blank.
Workaround: Kill the hosting app or reboot the device.
Keychain Access developer APIs may not work in Simulator.
Localization
Known Issue
There are a number of strings that will display in English for people running the iOS in other languages. Known areas of concern include, but are not limited to:
Find My iPhone/iPad/iPod
iBooks in Hindi is in English
Many strings in the Camera app
Locations in Messages
Apple Dictionary untranslated for French (Canada) and Traditional Chinese (Honk Kong)
Family Sharing Request Dialogs
Calendar notifications
Error dialogs
Time units in Videos and Music
Adding events in Mail
Safari search and privacy strings
Photos
Setup assistant
Predictive typing
Voice Memos
Units in Health
Location Services
Known Issues
When Location Services is turned on, the device’s current location is used to recommend relevant apps on the lock screen. In this beta, this happens whether or not the App Store is enabled for Location Services.
Workaround: To disable app recommendation on the lock screen, turn off Location Services.
Apps using visit monitoring that are denied location authorization via Settings may appear to continue using location when they are not.
Visit monitoring may continue if an app is uninstalled while it is monitoring for visits.
Lost Mode
Known Issues
A device doesn’t display the Lost Mode message in the lock screen if the device was locked at the time it was put into Lost Mode.
Workaround: Reboot the device.
After remote wiping a device and logging into the same (@icloud.com) iCloud account, the Lost Mode lock screen is displayed and the device cannot be unlocked.
Mail
Known Issues
Sometimes Mail crashes when replying to an email with an attachment.
On iPad, trying to add a contact via a Suggestion Banner causes Mail to hang.
Workaround: Quit and relaunch Mail.
MapKit
Known Issues
MKMapItem called with -[MKMapItem url] that have no URL return “http://(null)” when the should return nil.
On iPad, tapping on “Points of Interest” can cause Maps to hang.
Workaround: Kill Maps from the App Switcher and relaunch it.
Taking multiple snapshots using MKMapSnapshotter can sometimes produce a distorted map snapshot.
Workaround: Reinitialize a new class between subsequent snapshots.
Media Player
Known Issue
MediaPlayer.framework - MPVolumeSettingsAlertShow() does not display a volume slider or the AirPlay controller.
Messages
Known Issue
The string “Location” appears in non-English languages.
Music
Known Issue
Radio Redirect links from product pages do not work.
Newsstand
Known Issue
Content downloaded via NKAssetDownload doesn’t get returned to the app.
Notifications
Known Issue
Some app crashes cause Family notifications to stop appearing.
Workaround: Family notifications will come back after a reboot.
Passbook
Known Issues
Passes added on iOS 7 devices won’t appear in iOS 8 devices, and vice versa.
Pulling down to refresh passes does not work.
Phone
Known Issues
Missed calls and recent call info doesn’t always update properly.
Double height status bar does not always dismiss for phone and FaceTime calls.
Tapping a Maps pin during a call causes a hang.
Bringing up a contact card in Mail during a call causes a hang.
Phone call relay uses Bluetooth, when it should be using Wi-Fi. Since not all devices have the necessary BT support, this may fail on some hardware.
Phone call relay sometimes results in poor audio quality.
Sometimes the FaceTime Audio icon appears when FaceTime Audio is not available.
Photos
Notes
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.
Known Issues
The ability to automatically optimize device space is not enabled in this beta.
“Save to Camera Roll” button in a Shared stream doesn’t work.
If you turn off iCloud before disabling iCloud Photo Library, synced photos are still present on your device.
Workaround: After signing back in to your iCloud account, turn iCloud Photo Library off and then back on.
If you turn on iCloud Photo Library while an iCloud restore is in progress, your initial upload will not happen until the restore completes.
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.
Items deleted from the Recently Deleted album don’t sync to other devices.
Slow motion clips that have been trimmed sync to other devices as a gray thumbnail.
iCloud Photo downloads stall when a device is idle for a long period of time.
Workaround: Sync resumes when the device wakes up.
If both iCloud Photos and Photostream are enabled, duplicate photos are displayed.
iCloud Photo Library does not upload Photos synced from iTunes.
When uploading large libraries, users may encounter a stall when syncing.
Workaround: Reboot the device.
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.
When you select Edit in a list of reminders and then scroll, reminders in the list are no longer editable.
Screen Capture
Known Issue
QuickTime Player X is unable to connect to iPad Air devices for screen capture.
Settings
Known Issues
Settings sometimes crashes upon addition of a third-party keyboard.
The screen brightness slider in Settings does not work.
Workaround: Use Control Center to adjust the screen brightness.
When signing out of iCloud, the account will actually be signed out, but the UI will not correctly reflect this until the user goes out of iCloud settings and back into it.
iTunes Wi-Fi Sync does not work.
Sometimes Settings shows an iCloud Drive/iCloud Documents incompatibility dialog and will not let you press OK.
Workaround: Wait a couple of minutes and then press OK again.
You are unable to use the “Forgot Apple ID or Password” dialog on your device.
Workaround: Reset passwords from appleid.apple.com.
Setup
Known Issue
Updating 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.
Simulator
Known Issues
Logging into Game Center from the Settings app will result in an error:
Unable to connect to server. The operations couldn't be completed. (Cocoa error 4097.)
Workaround: Dismiss the alert and continue to log in or sign in through the Game Center app.
Apps deployed to CarPlay do not launch or display controls.
Changing keyboards in Settings > General > Keyboard requires you to relaunch your app before the new settings are observed.
The resizable iPhone does not work.
If a resizable device is being used in iOS Simulator, keyboard input will go to the width and height text fields if they have focus. If you want input to go to the hosted iOS app, you will need to use the Tab key to change focus away from the text field.
If you rename Xcode.app after having previously run it, Simulator stops working.
Workaround: Reboot or revert the name change.
Siri
Known Issues
Localized strings for Voice Activation phrases don’t appear in Settings > General > Siri.
Voice Activation phrase for each Siri Language:
English (US, UK, AU, CA): Hey Siri
French (FR, CA, CH): Dis Siri
German (DE, CH): Hey Siri
German (DE, CH): Hey Siri
Italian (IT, CH): Ehi Siri
Japanese (JP): Hey Siri
Chinese - Cantonese (HK): 喂Siri
Chinese - Mandarin (CN, TW): 嘿Siri
Spanish (MX, SP, US): Oye Siri
Korean (KR): Siri야
If you use Bluetooth to activate Siri and ask what song is playing, Siri fails to identify the song.
UIKit
Note
UILabel has a default value of YES for clipsToBounds. This differs from the normal UIView default of NO.
Known Issues
There is no publicly available way to customize the search key for a UISearchBar.
UIScrollViewcontentInset is not set correctly when pushing a navigation controller on a navigation controller in a UISVC.
Share sheets sometimes include the “Send to Shared Photostream” item when they should not.
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. An app may have to be force-quit after presenting a system view controller to function again.
Workaround: Launch all apps in portrait before rotating to landscape.
WebKit
Note
Subpixel rendering is now on by default for all web content. Web sites 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.
Known Issues
Applications that use Apache Cordova/PhoneGap are broken due to a bug that causes the window.navigator.userAgent object to become undefined when window.navigator is replaced by a pure JavaScript wrapper object.
If you pass NULL for the fqdn parameter of SecRequestSharedWebCredential as recommended, only the first domain in the entitlement is used.
SecRequestSharedWebCredential and SecAddSharedWebCredential currently only work on device, not in Simulator.
This article summarizes the key developer-related features introduced in iOS 8, which runs on currently shipping iOS devices. The article also lists the documents that describe new features in more detail.
For late-breaking news and information about known issues, see iOS 8 Release Notes. For the complete list of new APIs added in iOS 8, see iOS 8.0 API Diffs.
App Extensions
iOS 8 lets you extend select areas of the system by supplying an app extension, which is code that enables custom functionality within the context of a user task. For example, you might supply an app extension that helps users post content to your social sharing website. After users install and enable this extension, they can choose it when they tap the Share button in their current app. Your custom sharing extension provides the code that accepts, validates, and posts the user’s content. The system lists the extension in the sharing menu and instantiates it when the user chooses it.
In Xcode, you create an app extension by adding a preconfigured app extension target to an app. After a user installs an app that contains an extension, the extension is enabled by the user in the Settings app. When the user is running other apps, the system makes the enabled extension available in the appropriate system UI, such as the Share menu.
iOS supports app extensions for the following areas, which are known as extension points:
Share. Share content with social websites or other entities.
Action. Perform a simple task with the selected content.
Today. Provide a quick update or enable a brief task in the Today view of Notification Center.
Photo editing. Perform edits to a photo or video within the Photos app.
Storage provider. Provide a document storage location that can be accessed by other apps. Apps that use a document picker view controller can open files managed by the Storage Provider or move files into the Storage Provider.
Custom keyboard. Provide a custom keyboard that the user can choose in place of the system keyboard for all apps on the device.
Each extension point defines appropriate APIs for its purposes. When you use an app extension template to begin development, you get a default target that contains method stubs and property list settings defined by the extension point you chose.
Your app can now use Touch ID to authenticate the user. Some apps may need to secure access to all of their content, while others might need to secure certain pieces of information or options. In either case, you can require the user to authenticate before proceeding. Use the Local Authentication Framework (LocalAuthentication.framework) to display an alert to the user with an application-specified reason for why the user is authenticating. When your app gets a reply, it can react based on whether the user was able to successfully authenticate.
Take better photos in your app, provide new editing capabilities to the Photos app, and create new, more efficient workflows that access the user’s photo and video assets.
Photos Framework
The Photos framework (Photos.framework) provides new APIs for working with photo and video assets, including iCloud Photos assets, that are managed by the Photos app. This framework is a more capable alternative to the Assets Library framework. Key features include a thread-safe architecture for fetching and caching thumbnails and full-sized assets, requesting changes to assets, observing changes made by other apps, and resumable editing of asset content.
Use the related Photos UI framework (PhotosUI.framework) to create app extensions for editing image and video assets in the Photos app. For more information, see App Extension Programming Guide.
Manual Camera Controls
The AV Foundation framework (AVFoundation.framework) makes it easier than ever to take great photos. Your app can take direct control over the camera focus, white balance, and exposure settings. In addition, your app can use bracketed exposure captures to automatically capture images with different exposure settings.
Technology improvements in iOS 8 make it easier than ever to implement your game’s graphics and audio features. Take advantage of high-level frameworks for ease-of-development, or use new low-level enhancements to harness the power of the GPU.
Metal
Metal provides extremely low-overhead access to the A7 GPU enabling incredibly high performance for your sophisticated graphics rendering and computational tasks. Metal eliminates many performance bottlenecks—such as costly state validation—that are found in traditional graphics APIs. Metal is explicitly designed to move all expensive state translation and compilation operations out of the critical path of your most performance sensitive rendering code. Metal provides precompiled shaders, state objects, and explicit command scheduling to ensure your application achieves the highest possible performance and efficiency for your GPU graphics and compute tasks. This design philosophy extends to the tools used to build your app. When your app is built, Xcode compiles Metal shaders in the project into a default library, eliminating most of the runtime cost of preparing those shaders.
Graphics, compute, and blit commands are designed to be used together seamlessly and efficiently. Metal is specifically designed to exploit modern architectural considerations, such as multiprocessing and shared memory, to make it easy to parallelize the creation of GPU commands.
With Metal, you have a streamlined API, a unified graphics and compute shading language, and Xcode-based tools, so you don’t need to learn multiple frameworks, languages and tools to take full advantage of the GPU in your game or app.
Scene Kit is an Objective-C framework for building simple games and rich app user interfaces with 3D graphics, combining a high-performance rendering engine with a high-level, descriptive API. Scene Kit has been available since OS X v10.8 and is now available in iOS for the first time. Lower-level APIs (such as OpenGL ES) require you to implement the rendering algorithms that display a scene in precise detail. By contrast, Scene Kit lets you describe your scene in terms of its content—geometry, materials, lights, and cameras—then animate it by describing changes to those objects.
Scene Kit’s 3D physics engine enlivens your app or game by simulating gravity, forces, rigid body collisions, and joints. Add high-level behaviors that make it easy to use wheeled vehicles such as cars in a scene, and add physics fields that apply radial gravity, electromagnetism, or turbulence to objects within an area of effect.
Use OpenGL ES to render additional content into a scene, or provide GLSL shaders that replace or augment Scene Kit’s rendering. You can also add shader-based post-processing techniques to Scene Kit’s rendering, such as color grading or screen space ambient occlusion.
The Sprite Kit framework (SpriteKit.framework) adds new features to make it easier to support advanced game effects. These features include support for custom OpenGL ES shaders and lighting, integration with Scene Kit, and advanced new physics effects and animations. For example, you can create physics fields to simulate gravity, drag, and electromagnetic forces using the SKFieldNode class. Physics bodies can now easily be created with per-pixel collision masks. And it is easier than ever to pin a physics body to its parent, even if its parent does not have a physics body of its own. These new physics features make complex simulations much easier to implement.
Use constraints to modify the effects of physics and animations on the content of your scene—for example, you can make one node always point toward another node regardless of where the two nodes move.
Xcode 6 also incorporates new shader and scene editors that save you time as you create your game. Create a scene’s contents, specifying which nodes appear in the scene and characteristics of those nodes, including physics effects. The scene is then serialized to a file that your game can easily load.
AV Foundation framework (AVFoundation.framework) adds support for a broad cross-section of audio functionality at a higher level of abstraction than Core Audio. These new audio capabilities are available on both OS X and iOS and include automatic access to audio input and output hardware, audio recording and playback, and audio file parsing and conversion. You also gain access to audio units for generating special effects and filters, pitch and playback speed management, stereo and 3D audio environments, and MIDI instruments.
Health Kit (HealthKit.framework) is a new framework for managing a user’s health-related information. With the proliferation of apps and devices for tracking health and fitness information, it's difficult for users to get a clear picture of how they are doing. Health Kit makes it easy for apps to share health-related information, whether that information comes from devices connected to an iOS device or is entered manually by the user. The user’s health information is stored in a centralized and secure location. The user can then see all of that data displayed in the Health app.
When your app implements support for Health Kit, it gets access to health-related information for the user and can provide information about the user, without needing to implement support for specific fitness-tracking devices. The user decides which data should be shared with your app. Once data is shared with your app, your app can register to be notified when that data changes; you have fine-grained control over when your app is notified. For example, you could request that your app be notified whenever the user takes his or her blood pressure, or be notified only when a measurement shows that the user’s blood pressure is too high.
Home Kit Framework
Home Kit (HomeKit.framework) is a new framework for communicating with and controlling connected devices in a user’s home. New devices being introduced for the home are offering more connectivity and a better user experience. Home Kit provides a standardized way to communicate with those devices.
Your app can use Home Kit to communicate with devices that users have in their homes. Using your app, users can discover devices in their home and configure them. They can also create actions to control those devices. The user can group actions together and trigger them using Siri. Once a configuration is created, users can invite other people to share access to it. For example, a user might temporarily offer access to a house guest.
Use the Home Kit Accessory Simulator to test the communication of your Home Kit app with a device.
iCloud includes some changes that impact the behavior of existing apps and that will affect users of those apps.
Document-Related Data Migration
The iCloud infrastructure is more robust and reliable when documents and data are transferred between user devices and the server. When a user installs iOS 8 and logs into the device with an iCloud account, the iCloud server performs a one-time migration of the documents and data in that user’s account. This migration involves copying the documents and data to a new version of the app’s container directory. This new container is accessible only to devices running iOS 8 or OS X v10.10. Devices running older operating systems will continue to have access to the original container, but changes made in that container will not appear in the new container and vice versa.
Cloud Kit
Cloud Kit (CloudKit.framework) provides a conduit for moving data between your app and iCloud. Unlike other iCloud technologies where data transfers happen transparently, Cloud Kit gives you control over when transfers occur. You can use Cloud Kit to manage all types of data.
Apps that use Cloud Kit directly can to store data in a repository that is shared by all users. This public repository is tied to the app itself and is available even on devices without a registered iCloud account. As the app developer, you can manage the data in this container directly and see any changes made by users through the Cloud Kit dashboard.
The document picker view controller (UIDocumentPickerViewController) grants users access to files outside your application’s sandbox. It is a simple mechanism for sharing documents between apps. It also enables more complex workflows, because users can edit a single document with multiple apps.
The document picker lets you access files from a number of document providers. For example, the iCloud document provider grants access to documents stored inside another app’s iCloud container. Third-party developers can provide additional document providers by using the Storage Provider extension.
Handoff is a feature in OS X and iOS that extends the user experience of continuity across devices. Handoff enables users to begin an activity on one device, then switch to another device and resume the same activity on the other device. For example, a user who is browsing a long article in Safari moves to an iOS device that's signed into the same Apple ID, and the same webpage automatically opens in Safari on iOS, with the same scroll position as on the original device. Handoff makes this experience as seamless as possible.
To participate in Handoff, an app adopts a small API in Foundation. Each ongoing activity in an app is represented by a user activity object that contains the data needed to resume an activity on another device. When the user chooses to resume that activity, the object is sent to the resuming device. Each user activity object has a delegate object that is invoked to refresh the activity state at opportune times, such as just before the user activity object is sent between devices.
If continuing an activity requires more data than is easily transferred by the user activity object, the resuming app has the option to open a stream to the originating app. Document-based apps automatically support activity continuation for users working with iCloud-based documents.
iOS 8 makes dealing with screen size and orientation much more versatile. It is easier than ever to create a single interface for your app that works well on both iPad and iPhone, adjusting to orientation changes and different screen sizes as needed. Design apps with a common interface and then customize them for different size classes. Adapt your user interface to the strengths of each form factor. You no longer need to create a specific iPad storyboard; instead target the appropriate size classes and tune your interface for the best experience.
There are two types of size classes in iOS 8: regular and compact. A regular size class denotes either a large amount of screen space, such as on an iPad, or a commonly adopted paradigm that provides the illusion of a large amount of screen space, such as scrolling on an iPhone. Every device is defined by a size class, both vertically and horizontally. iPad size classes shows the native size classes for the iPad. With the amount of screen space available, the iPad has a regular size class in the vertical and horizontal directions in both portrait and landscape orientations.
Figure 1 iPad size classes in portraitFigure 2 iPad size classes in landscape
The iPhone has different size classes based on the orientation of the device. In portrait, the screen has a compact size class horizontally and a regular size class vertically. This corresponds to the common usage paradigm of scrolling vertically for more information. When the device is in landscape, it has a compact size class both horizontally and vertically. iPhone size classes shows the native classes for the iPhone.
Figure 3 iPhone size classes in portraitFigure 4 iPhone size classes in landscape
Every view has a size class associated with it that you can change. This flexibility is especially useful when a smaller view is contained within a larger view. You can use the default size classes to arrange the user interface of the larger view and arrange information in the subview based on a different size class combination.
To support size classes, the following classes are new or modified:
The UITraitCollection class is used to describe a collection of traits assigned to an object. Traits specify the size class, display scale, and idiom for a particular object. Classes that support the UITraitEnvironment protocol (such as UIViewController and UIView) own a trait collection. You can retrieve an object’s trait collection and perform actions when those traits change.
The UIImageAsset class is used to group like images together based on their traits. Combine similar images with slightly different traits into a single asset and then automatically retrieve the correct image for a particular trait collection from the image asset. The UIImage class has been modified to work with image assets.
Classes that support the UIAppearance protocol can customize an object’s appearance based on its trait collection.
The UIViewController class adds the ability to retrieve the trait collection for a child view. You can also lay out the view by changing the size class change through the viewWillTransitionToSize:withTransitionCoordinator: method.
Xcode 6 supports unified storyboards. Add or remove views and layout constraints based on the size class that the view controller is displayed in. Use Xcode 6 to test your app in a variety of size classes and screen sizes, making it easier than ever to design interfaces that adapt to the conditions under which they are running. Rather than maintaining two separate (but similar) storyboards, you can make a single storyboard for multiple size classes.
Additional Framework Changes
In addition to the major changes described above, iOS 8 includes other improvements.
API Modernization
Many frameworks on iOS have adopted small interface changes that take advantage of modern Objective-C syntax:
Getter and setter methods are replaced by properties in most classes. Code using the existing getter and setter methods should continue to work with this change.
Initialization methods are updated to have a return value of instancetype instead of id.
Designated initializers are declared as such where appropriate.
In most cases, these changes do not require any additional work in your own app. However, you may also want to implement these changes in your own Objective-C code. In particular, you may want to modernize your Objective-C code for the best experience when interoperating with Swift code.
The AV Foundation framework (AVFoundation.framework) enables you to capture metadata over time while shooting video. Arbitrary types of metadata can be embedded with a video recording at various points in time. For example, you might record the current physical location in a video created by a moving camera device.
The AV Kit framework (AVKit.framework) previously introduced on OS X is available on iOS. Use it instead of Media Player framework when you need to display a video.
Core Image Framework
The Core Image framework (CoreImage.framework) has the following changes:
You can create custom image kernels in iOS.
Core image detectors can detect rectangles and QR codes in an image.
The Core Location framework (CoreLocation.framework) has the following changes:
You can determine which floor the device is on, if the device is in a multistory building.
The visit service provides an alternative to the significant location change service for apps that need location information about interesting places visited by the user.
The Foundation framework (Foundation.framework) includes the following enhancements:
The NSFileVersion class provides access to past versions of iCloud documents. These versions are stored in iCloud, but can be downloaded on request.
The NSURL class supports storing document thumbnails as metadata.
The NSMetadataQuery class can search for external iCloud documents that your app has opened.
Game Controller Framework
The Game Controller framework (GameController.framework) has the following changes:
If the controller is attached to a device, you can now receive device motion data directly from the Game Controller framework.
If you are working with button inputs and do not care about pressure sensitivity, a new handler can call your game only when the button’s pressed state changes.
Game Kit Framework
The Game Kit framework (GameKit.framework) has the following changes:
Features that were added in iOS 7 are available on OS X 10.10, making it easier to use these features in a cross-platform game.
The new GKSavedGame class makes it easy to save and restore a user’s progress. The data is stored on iCloud; Game Kit does the necessary work to synchronize the files between the device and iCloud.
Methods and properties that use player identifier strings are now deprecated. Instead, use GKPlayer objects to identify players. Replacement properties and methods have been added that take GKPlayer objects.
iAd Framework
The iAd framework (iAd.framework) adds the following new features:
If you are using AV Kit to play a video, you can play preroll advertisements before the video is played.
You can look up more information about the the effectiveness of advertisements for your app.
SKSpriteNode objects can provide lighting information so that Sprite Kit automatically generates lighting effects and shadows. Add SKLightNode objects to the scene to specify the lights, and then customize the properties on these lights and any sprites to determine how the scene is lit.
The SKFieldNode class provides a number of physics special effects you can apply to a scene. For example, create magnetic fields, add drag effects, or even generate randomized motion. All effects are constrained to a specific region of the scene and you can carefully tune both the effect’s strength and how quickly the effect is weakened by distance. Field nodes make it easy to drop in an effect without having to search the entire list of physics bodies and apply forces to them.
A new SK3DNode class is used to integrate a Scene Kit scene into your game as a sprite. Each time that Sprite Kit renders your scene, it renders the 3D scene node first to generate a texture, then uses that texture to render a sprite in Sprite Kit. Creating 3D sprites can help you avoid needing to create dozens of frames of animation to produce an effect.
New actions have been added, including support for inverse kinematic animations.
A new system of constraints has been added to scene processing. Constraints are applied after physics is simulated and can be used to specify a set of rules for how a node is positioned and oriented. For example, you can use a constrant to specify that a particular node in the scene always points at another node in the scene. Constraints make it easier to implement rendering rules in your game without having to manually tweak the scene in your event loop.
A scene can implement all of the run-loop stages in a delegate instead. Using a delegate often means that you can avoid needing to subclass the SKScene class.
The SKView class provides more debugging information. You can also provide more performance hints to the renderer.
You can create normal map textures for use in lighting and physics calculations (or inside your own custom shaders). Use the new SKMutableTexture class when you need to create textures whose contents are dynamically updated.
You can dynamically generate texture atlases at runtime from a collection of textures.
Xcode 6 also incorporates many new Sprite Kit editors. Create or edit the contents of scenes directly, specifying the nodes that appear in the scene as well as their physics bodies and other characteristics. This scene is serialized to a file and can be loaded directly by your game. The editors save you time because often you don’t need to implement your own custom editors to create your game’s assets.
The UIKit framework (UIKit.framework) includes the following enhancements:
Apps that use local or push notifications must explicitly register the types of alerts that they display to users by using a UIUserNotificationSettings object. This registration process is separate from the process for registering remote notifications, and users must grant permission to deliver notifications through the requested options.
Local and push notifications can include custom actions as part of an alert. Custom actions appear as buttons in the alert. When tapped, your app is notified and asked to perform the corresponding action. Local notifications can also be triggered by interactions with Core Location regions.
Collection views support dynamically changing the size of cells. Typically, you use this support to accommodate changes to the preferred text size, but you can adapt it for other scenarios too. Collection views also support more options for invalidating different portions of the layout and thereby improving performance.
The UISearchController class replaces the UISearchDisplayController class for managing the display of search-related interfaces.
The UISplitViewController class is now supported on iPhone as well as iPad. The class adjusts its presented interface to adapt to the available space. It also changes the way it shows and hides the primary view controller, giving you more control over how to display the split view interface.
The UINavigationController class has new options for changing the size of the navigation bar or hiding it altogether by using gestures.
The new UIVisualEffect class enables you to integrate custom blur effects into your view hierarchies.
The new UIPresentationController class lets you separate the content of your view controllers from the chrome used to display them.
The new UIPopoverPresentationController class handles the presentation of content in a popover. The existing UIPopoverController class uses the popover presentation controller to show popovers on the screen.
The new UIPrinterPickerController class offers a view controller-based way to display a list of printers and to select one to use during printing. Printers are represented by instances of the new UIPrinter class.
You can take the user directly to your app-related settings in the Settings app. Pass the UIApplicationOpenSettingsURLString constant to the openURL: method of the UIApplication class.
The Video Toolbox framework (VideoToolbox.framework) includes direct access to hardware video encoding and decoding.
Deprecated APIs
The following APIs are deprecated:
The UIApplication methods and properties for registering notifications. Use the new API instead.
The UIViewController methods and properties for interface orientation. Traits and size classes replace them, as described in Unified Storyboards for Universal Apps. There are other smaller changes to UIKit API to support size classes; often older interfaces that used specific device idioms have been replaced.
iOS 8 includes over 4,000 new APIs that let you add amazing new features and capabilities to your apps. Deeper integration with iOS means you can extend the reach of your app content and functionality. And with bold new technologies for game development, you can create even more incredible, responsive, and immersive gaming experiences.
iOS 8 lets you extend select areas of the system by supplying an app extension — code that enables custom functionality within the context of a user task. iOS supports app extensions for the following extension points.
By providing more sharing options, iOS 8 enables your app to share photos, videos, websites, and other content with social websites and other entities.
Photo Editing
Embed your filters and editing tools directly into the Photos app, so users can easily apply your effects to images and videos without having to import them into your app.
Custom Actions
Create your own custom action buttons in the Action sheet to let users watermark documents, add something to a wish list, translate text to a different language, and more.
Today
Your apps can now display widgets in the Today view of Notification Center, providing quick updates or enabling brief tasks — for example, posting updates on package deliveries, the latest surf reports, or breaking news stories.
Storage Provider
You can now provide a document storage location that can be accessed by other apps. Apps that use a document picker view controller can open files managed by the storage provider or move files into the storage provider.
Document Picker
The document picker view controller grants your users access to files outside your app’s sandbox. Documents are easily shared between apps, enabling users to edit a single document in multiple places.
Custom Keyboard
With iOS 8, you can provide custom keyboards with different input methods and layouts for users to install and use systemwide.
New Capabilities
iOS 8 introduces a huge set of APIs and services, so you can create new categories of apps and features. Here are some of the most exciting new capabilities we’re unlocking.
Touch ID
Your app can now use Touch ID to authenticate a user before accessing some or all content in your app. Fingerprint data is protected and never accessed by iOS or other apps.
PhotoKit provides new APIs for working with photo and video assets, including iCloud Photos assets, that are managed by the Photos app, so your app can edit photos directly in the Camera roll without having to import them first. Key features include a thread-safe architecture for fetching and caching thumbnails and full-sized assets, requesting changes to assets, observing changes made by other apps, and resumable editing of asset content.
The AVFoundation framework makes it easier than ever for users to take great photos. Your app can take direct control over the camera focus, white balance, and exposure settings. Your app can also use bracketed exposure captures to automatically capture images with different exposure settings.
HeathKit allows apps providing health and fitness services to access shared health-related information in one place. A user’s health information is stored in a centralized and secure location and the user decides which data should be shared with your app.
Your app can access any shared health-related information and can provide information about the user without you needing to implement support for specific fitness-tracking devices. Information can come from devices connected to an iOS device or manual entry by the user. Learn more
HomeKit
This is a new framework for communicating with and controlling connected devices in a user’s home. Your apps can enable users to discover devices in their home and configure them, or you can create actions to control those devices. Users can group actions together and trigger them using Siri. Learn more
CloudKit
Leverage the full power of iCloud and build apps with the new CloudKit framework. Now you can easily and securely store and efficiently retrieve your app data like structured data in a database or assets right from iCloud. CloudKit also enables your users to anonymously sign in to your apps with their iCloud Apple IDs without sharing their personal information.
With CloudKit, you can focus on your client-side app development and let iCloud eliminate the need to write server-side application logic. CloudKit provides authentication, private and public databases, and structured and asset storage services — all for free with very high limits. Learn more
Handoff
Using a simple API in Foundation, your app can participate in Handoff to let users start an activity on one device and seamlessly resume the activity on another device.
Technology improvements in iOS 8 make it easier than ever to implement your game’s graphics and audio features. Take advantage of high-level frameworks for ease-of-development, or use new low-level enhancements to harness the power of the GPU.
SceneKit
SceneKit is a high-level 3D graphics framework that helps you create 3D animated scenes and effects in your apps. It incorporates a physics engine, a particle generator, and easy ways to script the actions of 3D objects so you can describe your scene in terms of its content — geometry, materials, lights, and cameras — then animate it by describing changes to those objects. SceneKit’s 3D physics engine enlivens your app or game by simulating gravity, forces, rigid body collisions, and joints. It’s also completely integrated with SpriteKit, so you can include SpriteKit assets in 3D games.
The SpriteKit framework adds new features to make it easier to create high-performance, battery-efficient 2D games. With support for custom OpenGL ES shaders and lighting, integration with SceneKit, and advanced new physics effects and animations, you can add force fields, detect collisions, and generate new lighting effects in your games. Xcode 6 also incorporates new shader and scene editors that save you time as you create your game. Create a scene’s contents, specifying which nodes appear in the scene and characteristics of those nodes, including physics effects. The scene is then serialized to a file that your game can easily load.
With extremely low-overhead access to the A7 GPU, Metal enables incredibly high performance for sophisticated graphics rendering and computational tasks. Metal eliminates many performance bottlenecks that are found in traditional graphics APIs. It’s specifically designed to exploit modern architectural considerations, such as multiprocessing and shared memory, to make it easy to parallelize the creation of GPU commands. Metal offers a streamlined API, a unified graphics and compute shading language, and Xcode-based tools.
Swift is an innovative new programming language for Cocoa and Cocoa Touch with concise yet expressive syntax. Writing Swift code within an Xcode 6 playground shows instant results, while finished apps are compiled into high-performance native machine code. The Swift language is fast, modern, safe, and interactive. Learn more about Swift
iOS SDK 7.1 provides support for developing iOS apps, and it includes the complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These 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 7. You can also test your apps using the included iOS Simulator, which supports iOS 7. iOS SDK 7.1 requires a Mac computer running OS X v10.8.4 (Mountain Lion) 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.
The following issues relate to using iOS SDK 7.1 beta 5 to develop code.
Bluetooth
Known Issue
32-bit apps running on a 64-bit device cannot attach to BTServer.
CFNetwork
Notes
A compatibility behavior has been added to address an issue where some web servers would send the wrong Content-Length value for “Content-Encoding: gzip” content. Previously,NSURLConnection and NSURLSession would send a “network connection was lost” / NSURLErrorNetworkConnectionLost (-1005) error in this situation.
The compatibility behavior applies only if the Content-Length value exactly matches the expanded gzip’d content. It won’t apply for “off by 1” or similar miscounting.
Safari
Notes
A property, minimal-ui, has been added for the viewport meta tag key that allows minimizing the top and bottom bars on the iPhone as the page loads. While on a page using minimal-ui, tapping the top bar brings the bars back. Tapping back in the content dismisses them again.
For example, use <meta name="viewport" content="width=1024, minimal-ui”>.
Siri
Notes
This seed adds new natural-sounding Siri voices for English (Australia), English (United Kingdom), Japanese, and Chinese (Mandarin - China).
The iOS device initially uses a compact voice for Siri. After you have configured a Wi-Fi network and have the device connected to a power source, iOS will automatically download and install a higher quality version.
Sync
Known Issue
In some situations, the “Connect to iTunes over USB to re-enable Wi-Fi Sync” prompt is not shown after an update as expected. Connecting to iTunes to re-enable Wi-Fi Sync is still required (and still functions as expected), it is just that the UI is not shown.
After upgrading to beta 5, iTunes Wi-Fi Sync users should connect their devices to their hosts to re-pair to enable wireless syncing.
If a UITextField or a UILabel that is baseline aligned with constraints has attributes that change after the constraints have been added, the layout may be incorrect. The exception to this is -setFont: on UILabel, which should work as expected.
Workaround: Avoid making changes in UITextField or UILabel after adding baseline-alignment constraints. If you must make changes, you should remove the constraints and then reapply them afterward. Note that this is a performance hit, so don’t do it unless it is necessary.
주말에 iOS 5.0 으로 내 아이폰을 업그레이드 해보았다.
설치 한뒤 소감은 제법 괜찮은 기능들이 들어가 있지만 역시 베타는 베타 일뿐.
안정적인 기존 4점대 버전을 사용하기를 강력 추천한다~
[설치방법]
준비물 : Mac 컴퓨터, iOS 5.0 beta ipsw (바로이전에 포스탕한 내용에 보면 각 디바이스별로 다운가능 dmg 받고 풀면 됨), 애플 개발자 계정, 업그레이드할 iOS 디바이스 (일단 테스트 기기로 등록된 기기만가능), xcode, iTuns 10.5 beta
1 . 모든 준비물이 갖춰졌다면~ xcode 를 실행.
2. 시작 메뉴에서 아무거나 골라도 되지만 맨위에있는 Create New xcode project 를 선택.
3. 새프로젝트를 선택하면 처음에 템플릿 선택창이 뜨는데, 이건그냥 무시하고 위에 메뉴중에 Window > Organizer 를 클릭~!.
4. 이미 테스트기기로 등록 했다면, 케이블로 디바이스를 맥에 연결하면 아래와 같은 화면을 확인할수 있다.
5. Software Version 에 선택바를선택하여 other file 인가? 선택을하면 ipsw 파일을 불러올수 있다. 이때 받아둔 디바이스용 5.0 파일을 선택 해주면 그냥 쭉 업데이트가 진행된다.
[주의점]
- 위의 내용은 iphone 3GS만 가지고 해본 거라 모든 디바이스에 실제로 해보진 않았지만 다 똑같을거라 예상됨;;; (책임회피)
- 일단 업데이트 되면 기존에 iTuns 로는 기기 인식이 안됨.
- 4 점대로의 복구.. 시도해보진 않았지만 일단은 안된다고 알려짐(물론 가능한 방법이 있다는~!! 4.3대 ipsw를 구해서 그거로 위와 같은 방식대로 restore 한다거나 하는등의 방법)
- 일단은 베타인터라 버벅대는게 제법 많이 느껴짐.
- 그냥 기존에 4점대 버전 사용하기를 추천 -ㅅ-;;;