Apple just pushed iOS 5 beta 5 out to developers and wouldn’t you know, we’ve got the full change log for you to feast your eyes on. Hit the jump for all the iOS 5 changes you can handle.
Thanks, Jean!
Notes and Known Issues
The following issues relate to using the 5.0 SDK to develop code.
Accounts
- When creating an iCloud account, you can use any Apple ID as long as it is a full email address and not a MobileMe account. If you have a MobileMe account, you can move that account to iCloud. You can find more information on iCloud at: http://developer.apple.com/icloud
- When setting up an iCloud or MobileMe account using the setup assistant and leaving Find My iPhone on, it might actually turn Find my iPhone off after the setup. Please verify in Settings/Mail, Contacts, Calendar/YourAccount that Find my iPhone is toggled On after leaving the setup assistant.
- NEW: Enabling iCloud services in Setup Assistant may not always be saved correctly. After completing Setup Assistant you should visit Settings > iCloud to verify the state of the iCloud account. If you have multiple iCloud or MobileMe accounts configured on the device you should also visit each of those accounts in Settings > Mail, Contacts, Calendar to verify each account.
- It is recommended that you disable Bookmarks on multiple accounts. If they are enabled, the results might be undefined.
AirPlay
- Starting in iOS 5, video content in applications and websites are AirPlay-enabled by default.
- iOS 5 supports AirPlay of video via AV Foundation.
Apple TV
Apple TV Software beta enables users to mirror the contents of an iPad 2 to anApple TV (2nd generation) using AirPlay. This beta software also enables Photo Stream onApple TV so users can access photos stored in iCloud.Apple TV Software beta is being provided to test the latest AirPlay functionality with your iOS 5 apps and web sites. If you wish to installApple TV Software beta on your device, you must first register your device UDID in the iOS Developer Program Portal.
Calendar
- Birthday calendars are not currently available via the
icloud.com
website or in Windows. They will be available in a future release. - NEW: The default calendar is still the On My iPhone calendar despite setting up an iCloud account during Setup Assistant. As a workaround, reset the default Calendar after finishing Setup Assistant in Settings > Mail, Contacts, Calendar > Default Calendar.
- NEW: Pushing iCloud Calendar data is not working in iOS. To sync your iCloud Calendar, launch the Calendar app or refresh the calendars manually using the Calendars button in the top left corner.
Core Image
- Several filters have been added since beta 1. The current list now includes the following filters:
CIAdditionCompositing
,CIAffineTransform
,CICheckerboardGenerator
,CIColorBlendMode
,CIColorBurnBlendMode
,CIColorControls
,CIColorCube
,CIColorDodgeBlendMode
,CIColorInvert
,CIColorMatrix
,CIColorMonochrome
,CIConstantColorGenerator
,CICrop
,CIDarkenBlendMode
,CIDifferenceBlendMode
,CIExclusionBlendMode
,CIExposureAdjust
,CIFalseColor
,CIGammaAdjust
,CIGaussianGradient
,CIHardLightBlendMode
,CIHighlightShadowAdjust
,CIHueAdjust
,CIHueBlendMode
,CILightenBlendMode
,CILinearGradient
,CILuminosityBlendMode
,CIMaximumCompositing
,CIMinimumCompositing
,CIMultiplyBlendMode
,CIMultiplyCompositing
,CIOverlayBlendMode
,CIRadialGradient
,CISaturationBlendMode
,CIScreenBlendMode
,CISepiaTone
,CISoftLightBlendMode
,CISourceAtopCompositing
,CISourceInCompositing
,CISourceOutCompositing
,CISourceOverCompositing
,CIStraightenFilter
,CIStripesGenerator
,CITemperatureAndTint
,CIToneCurve
,CIVibrance
,CIVignette
, andCIWhitePointAdjust
GameKit
- Match data for turn based matches is currently limited to 4 KB of data.
- NEW: When logging in to Game Center, the password may clear and login may not complete. Trying a second time will succeed.
- NEW: In this beta, GameKit Invites may fail. As a workaround, try restarting the device.
iBooks
- iBooks 1.2.2 may fail to display some text or images in books. Please update to iBooks 1.3 in the App Store.
iCloud Backup
- As this is beta software, it is recommended that you do not use the iCloud services to store any critical data or information. If you enable iCloud Backup, automatic backup with iTunes when syncing will be disabled. We also suggest that you manually back up your device with iTunes. Backups made with earlier versions of iOS 5 beta will soon become incompatible, and will no longer be available. It is strongly advised you upgrade to this version of the iOS 5 beta in order to continue backing up your devices. If you encounter errors restoring from a backup, or enabling a backup more than one hour after signing into iCloud, try deleting your iCloud account from Settings and adding it back. If errors persist, please try erasing your device and initiating the restore again.
iCloud Storage
- During the iOS 5 beta period, any documents stored on the servers might be purged periodically before GM. Therefore, it is highly recommended that you do not store any critical documents or information on the servers.
- NEW: Provisioning Profiles no longer need to be enabled for iCloud in the iOS Provisioning Portal. All newly generated provisioning profiles are now automatically enabled for iCloud. If you are using an Xcode managed Team Provisioning Profile, click refresh in the Xcode Organizer to obtain a new iCloud-enabled profile. To enable all other provisioning profiles for iCloud, simply regenerate your profiles in the iOS Provisioning Portal.
- If your application is using the
NSMetadataQuery
class, you must set a predicate, even though the predicate itself is ignored. - In this beta, the
setSortDescriptors:
method ofNSMetadataQuery
is not supported. - FIXED: To use iCloud prior to beta 5, you had to manually specify various container identifiers (your application’s Display set) within an Entitlements file for both of your Mac OS X and iOS projects.Starting in beta 5, to enable iCloud storage within your apps, simply click the “Enable Entitlements” checkbox in the Summary pane of your project. Xcode will create a custom entitlements file for your project that automatically includes your Team ID. You can add additional iCloud Container values as required by your application. (Note that you must regenerate your existing provisioning profiles, either with Xcode or in the iOS Provisioning Portal, to use iCloud storage.)If you specify a custom identifier string for your iCloud Key-Value Store or iCloud Container entitlement values, you no longer need to prepend your Team ID to the beginning of the string. Xcode will prepend your Team ID to these entries automatically
- The container identifier string you pass to the
URLForUbiquityContainerIdentifier:
method ofNSFileManager
MUST include the team ID at the beginning of the string. As a convenience, if you passnil
, Foundation uses the first document container ID specified in your app’s entitlements. - There are issues using the Cloud Storage document API in conjunction with protected data which can lead to data corruption.
- FIXED: In this beta, document-based applications cannot always detect when files change, move, or are deleted out from underneath them.
- In this beta, file presenters (objects that adopt the
NSFilePresenter
protocol) do not receive some of the messages that they’re supposed to receive, especially:presentedItemDidChange
presentedSubitemDidAppearAtURL:
presentedSubitemDidChangeAtURL:
You can workaround this by implementing the
relinquishPresentedItemToWriter:
method and checking to see if the writer actually wrote when your file presenter reacquires. You can also use FSEvents to observe file system changes - In this beta, messages about changes to files in a directory are not getting delivered to objects that adopt the
NSFilePresenter
protocol. - While reporting a bug related to the iCloud storage interfaces, please include the logs collected during your debugging session. To generate these logs, you must install a special debug profile on your device.The debug profile can be obtained from http://connect.apple.com. This profile enables the generation of debug logs that are needed to diagnose any problems using iCloud storage. The instructions to collect the logs are:
- Install the profile. (The easiest way to do this is to mail it to yourself and open the attachment on their device.)
- Reproduce the bug.
- Sync with iTunes to pull the logs off your device.
- Attach the logs to your bug report. You can find the logs in
~/Library/Logs/CrashReporter/MobileDevice/DeviceName/DiagnosticLogs
.
These logs can grow large very quickly, so you should remove the profile after you have reproduced the problem and pulled the logs for the bug report.
- NEW: File names are case-insensitive in OS X but case-sensitive in iOS. This can lead to problems when syncing files between the two. You should take steps on iOS to avoid creating files whose names differ only by case.
iMessage
- iMessage beta 1 will be unable to communicate with iMessage users on beta 2 or later.
iPod
- NEW: When using the volume buttons on the device, or on headphones, the volume slider in the UI of applications may not update even though the volume level has changed.
iTunes
- The version of iTunes that comes with beta 5 cannot sync devices that have the beta 4 software installed. To avoid this problem, do the following:
- Sync any devices that have beta 4 installed to the version of iTunes that came with beta 4.
- Upgrade iTunes to the version that comes with beta 5.
- Connect the device and install the beta 5 software. (Understand that you might see a failure to sync error when you first connect the device.)
- After installing the beta 5 software, restore from your the backup you made in step 1.
- Videos purchased from the iTunes Store do not play on a 2nd generation AppleTV over AirPlay with iTunes 10.5.
Location
- FIXED: The
startMonitoringSignificantLocationChanges
method ofCLLocationManager
does not cause applications to be resumed or launched in the background for significant location change updates. However, if a backup from a previous software version (where an application was monitoring significant location changes) is restored to the device, significant location change monitoring will continue to cause that application to be resumed or launched in the background.
- FIXED: Forwarding a message with attachments included does not attach the file and the message compose screen does not change from “Loading….”
- NEW: When changing the host name of an email account in settings, blank messages may be seen in the unified inbox. As a workaround, delete and re-add the account instead of changing its host name.
Music Library
- FIXED: Some songs are missing their album artwork after changing the device library via syncing.
OpenGL ES
- FIXED: In iOS 5.0 beta 4, several OpenGL ES extensions have been moved from the APPLE namespace to the EXT namespace, causing some API to be renamed. The altered extensions are EXT_color_buffer_half_float,EXT_occlusion_query_boolean, EXT_separate_shader_objects, EXT_shadow_samplers, EXT_texture_rg, EXT_debug_label, and EXT_debug_marker.
OTA Software Update
- If you are doing an OTA software update, you will need to re-sync your photos with iTunes.”
Personal HotSpot
- FIXED: In this beta, iPhone 4 device cannot join personal hotspot even if it is on due to a non functional Wi-Fi tethering on these devices.
Photos
- FIXED: If you apply red-eye adjustments in iOS, and import your image into the iPhoto seed build, the red-eye adjustments will not appear on that image in iPhoto. As a result, subsequent syncing of your image back to the iOS device from iPhoto will not show the red-eye adjustments.
- NEW: When restoring photo libraries from an iTunes backup, some photos may not appear in the Photos application after restore. Please back up your photos before updating to iOS Beta 5.
Simulator
- Location services are not functional in iOS 4.3 simulator running on Mac OS 10.7 with Xcode 4.2.
Springboard
- Push and local notifications for apps appear in the new Notification Center in iOS 5. Notification Center displays notifications that are considered “unread.” In order to accommodate push and local notifications that have no “unread” status, developers can use their application badge count to trigger a clearing of notifications from Notification Center. When an application clears its badge count (by setting it to zero), iOS 5 will clear its notifications from Notification Center.
- FIXED: iOS 5.0 terminates VoIP applications that are resumed in the background for incoming network traffic with extreme frequency. Developers are encouraged to make sure all incoming data is read from VoIP sockets to avoid this condition.
- NEW: The
UIPrerenderedIcon
key (in theInfo.plist
file) is not honored in this build.
StoreKit
- NEW: In-App purchase will not work for developers testing their apps with the iTunes Sandbox.
- FIXED: When tweeting your location from Safari and exiting before the location can be established, the location arrow will stay in the status bar. The arrow can be removed by killing Safari from the task switcher.
UI Automation
- FIXED: Instruments overwrites the loaded automation script, even if another program is editing it.
- FIXED: The play and record buttons in the Automation instrument script editor may not work properly after targeting an application that was launched by a trace session and has ended. They may also not work if you target an application that was suspended. If you run into this problem and it persists, you may need to close and reopen the trace document to get back into a functional state.
- FIXED: When capturing actions into a script using the Automation instrument, interfaces with web views or table cells that contain a high number of off screen elements may take an extremely long time before returning with an expression.
- The
lock()
andunlock()
functions ofUIATarget
have been replaced with thelockForDuration(
<seconds>)
function. - Starting in iOS 5 beta 2, you can now trigger the execution of an UI Automation script on an iOS device from the host terminal by using the instruments tool. The command is:
instruments -w <device id> -t <template> <application>
- When using the cli instruments for UI Automation you can now target the default Automation Template and pass the script and results path into the tool as environment variable options. For example:
instruments -w <device id> -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <application> -e UIASCRIPT <script> -e UIARESULTSPATH <results path>
UIKit
- Starting in iOS 5 beta 3, the
exclusiveTouch
property ofUIControl
has returned to its original default value ofNO
. - Returning
nil
from thetableView:viewForHeaderInSection:
method (or its footer equivalent) is no longer sufficient to hide a header. You must overridetableView:heightForHeaderInSection:
and return0.0
to hide a header. - In the iOS 5 beta, the
UITableView
class has two methods to move one cell from one row to another with defined parameters. These APIs are:moveSection:toSection:
moveRowAtIndexPath:toIndexPath:
- Using the
UIWebView
class in Interface Builder, setting transparent background color is possible in iOS 5. Developers compiling against the new SDK can check their XIB for theUIWebView
transparent setting. - In the iOS 5 beta, the
UINavigationBar
,UIToolbar
, andUITabBar
implementations have changed so that thedrawRect:
method is not called on instances of these classes unless it is implemented in a subclass. Apps that have re-implementeddrawRect:
in a category on any of these classes will find that thedrawRect:
method isn’t called. UIKit does link-checking to keep the method from being called in apps linked before iOS 5 but does not support this design on iOS 5 or later. Apps can either:- Use the customization API for bars that in iOS 5 and later, which is the preferred way.
- Subclass
UINavigationBar
(or the other bar classes) and overridedrawRect:
in the subclass.
- The
indexPathForRow:inSection:
,section
, androw
methods ofNSIndexPath
now useNSInteger
instead ofNSUInteger
, so that these types match with methods defined onUITableView
. - Touch events are not getting forwarded to the view in the
cameraOverlayView
property ofUIImagePickerController
. - We have changed the behavior of
scrollToRowAtIndexPath:atScrollPosition:animated:
such thatUITableViewScrollPositionTop
andUITableViewScrollPositionBottom
now adjust for the top and bottom portions of thecontentInset
property.
WebKit
- In iOS 5, a new inherited CSS property,
-webkit-overflow-scrolling
, is available. The valuetouch
allows the web developer to opt in to native-style scrolling in anoverflow:scroll
element. The default value for this property isauto
, which allows single-finger scrolling without momentum. - NEW: In beta 5, accessing sites that use client side SSL certificates does not work and may cause the application to crash.
- The WebKit framework has picked up a newer WebKit engine, which closely matches Safari 5.1. Some areas to be aware of with the new WebKit framework on iOS:
- There is a new HTML5-compliant parser.
- Text layout width may change slightly because word-rounding behavior now has floating-point-based precision.
- There is improved validation of the
<input>
form field, which includes removing leading zeros and number formatting. - Touch events are now supported on input fields.
window.onerror
is now supported.- There is a new user agent that does not have locale information in the User Agent string.
- NEW: URLs are now canonicalized by making the scheme all lowercase. If a fake URL is used to pass information from a UIWebView back to native code, make sure that the scheme is always lowercase, or that the native code compares the scheme in a case-insensitive manner.
Wi-Fi Syncing
- In iOS 5 beta 4 and later, wireless syncing is now available on Windows as well as the Mac. (This support requires OS X 10.6.8 or Lion.) You will see an option to enable wireless syncing when you connect your device to iTunes with the USB cable. It is recommended you perform your initial sync with a cable after restoring your device.
- Wireless syncing is triggered automatically when the device is connected to power and on the same network as the paired computer. Or, you can manually trigger a sync from iTunes or from Settings > General > iTunes Sync (same network as paired computer required).
- If you find issues with apps, media and/or photos synced to your device, you can reset then resync. From Settings > General > Reset, choose Erase all Content and Settings. Then reconnect to iTunes and sync again.
- In some cases, your device may fail to sync contacts, calendars and account settings, or back up to iTunes. If this happens, reboot your device and re-sync.
- FIXED: In some cases, syncing photos may result in only thumbnails on your device. If this happens, unsync Photos then re-sync again.
Xcode
- FIXED: In beta 4, device restores using Xcode were disabled. This has been fixed. Device restores are now enabled and work in Xcode.
- In some cases, Xcode 4.2 Organizer does not display a device that is in restore mode. As a workaround you can use iTunes to restore.
- In iOS 5 beta 5, iOS Simulator is not compatible with previous releases of the iCloud Developer Seed for OS X. It is highly recommended that you update to the latest iCloud Developer Seed to ensure compatibility.
- iOS 5.0 SDK supports both iOS 4.3 and iOS 5.0 simulators.
- NEW: Xcode fails to build a Page-based template. You can work around this issue by adding the Core Graphics framework to your project.