Apple on Friday released the fourth beta version of its iOS 5 operating system, and this one brings about plenty of goodies that developers have been waiting for. The fact that the update can be applied over the air is a huge addition, of course, but there’s plenty more to be found buried within iOS 5 beta4 for the iPhone 3GS, iPhone 4, iPad, iPad 2, and third and fourth-generation iPod touch. Wondering what’s new in this build? Apple’s full change log for iOS 5 beta 4 follows below.
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 provided it is a full email address and not a MobileMe account. If you have a MobileMe account, you can copy data from that account to an iCloud account to use during testing. 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.
- It is recommended that you disable Bookmarks on multiple accounts. If they are enabled, the results might be undefined.
- FIXED: In this beta the option of “Choosing a security question” is not working during an iCloud account setup.
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.
- Switching into AirPay Video while using mirroring will leave the screen black but the video is still playing.
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.- There is no new build for AppleTV for beta 4. Please continue using the build provided with beta 3.
Audio
- Using voice chat in iOS 5 requires setting the
kAudioSessionMode_VoiceChat
mode on the Audio Session, or setting theAVAudioSessionModeVoiceChat
mode on theAVAudioSession
object.
Calendar
- All MobileMe calendars were duplicated after turning calendar syncing off and back on.
- FIXED: Restoring from a Seed 1 backup or earlier will cause MobileMe/iCloud calendars not to sync. Subscribed calendars will show up in Calendars but none of your event calendars will appear in MobileCal. To workaround the problem please remove and re-add the account.
- If SnowLeopard isn’t syncing your calendars on iOS device and you created a calendar or reminders list using a previous iOS 5.0 seed, change the name of that calendar or list on the iOS device and then let it sync.
- In this beta Birthday calendar is temporarily disabled for Web apps and Windows and will be available in a future release.
Contacts
- NEW:In MobileMe local contacts are deleted instead of be being merged.
- In this beta Import/Export vCard is disabled from Action menu and will be available in future release.
GameKit
- Match data for turn based matches is currently limited to 4 KB of data.
- When both Wifi and 3G are disabled (i.e. in Airplane mode) sometimes GameKit can cause the connection in a local Bluetooth match to fail.
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 suggest you also manually back up your device with iTunes. It is strongly advised you upgrade to this version of the iOS 5 beta in order to continue backing up your devices and preserve previous backups.
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.
- If your application is using the
NSMetadataQuery
class, you must set a predicate, even though the predicate itself is ignored. - The Foundation framework doesn’t include the team ID when looking for an app’s mobile documents container. The Team ID must be included at the beginning of the identifier string passed to the
URLForUbiquityContainerIdentifier:
method. - In this beta, the
setSortDescriptors:
method ofNSMetadataQuery
is not supported. - In this beta, if you want to use iCloud, you have 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.
- There are issues using the Cloud Storage document API in conjunction with protected data which can lead to data corruption.
- In this beta, document-based applications cannot always detect when files change, move, or are deleted out from underneath them.
- NEW: 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 in iCloud Storage are case sensitive.
iMessage
- NEW: iMessage beta 1 will be unable to communicate with iMessage users on beta 2 or later.
iTunes
- The version of iTunes that comes with beta 4 cannot sync devices that have the beta 2 software installed. To avoid this problem, do the following:
- Sync any devices that have beta 3 installed to the version of iTunes that came with beta 4.
- Upgrade iTunes to the version that comes with beta 4.
- Connect the device and install the beta 4 software. (Understand that you might see a failure to sync error when you first connect the device.)
- After installing the beta 4 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
- NEW: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.
- NEW:Forwarding a message with attachments included does not attach the file and the message compose screen does not change from “Loading….”
Music Library
- NEW:Some songs are missing their album artwork after changing the device library via syncing.
OpenGL
- NEW: In iOS 5.0 beta 4, several OpenGL 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
- NEW: If you are doing a OTA software update from beta 3 to beta 4, you will need to re-sync your photos with iTunes.”
Personal HotSpot
- NEW:In this beta iPhone 4 device cannot join personal hotspot even if it is on due to a non functional WiFi tethering on these devices.
Photo Adjustments
- 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.
Settings
- FIXED: In this beta FaceTime icon is missing in Settings on the iPhones.
Simulator
- NEW: 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.
- NEW: 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: 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
- NEW: Instruments overwrites the loaded automation script, even if another program is editing it.
- 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.
- 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. - FIXED:Instruments overwrites the loaded automation script, even if another program is editing it.
- 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
. - FIXED:When creating a new appointment in calendar app on a device using 24 hr clock, you cannot select an hour value greater than 12. The date-time picker value sets current weekday to be the same as previous day (e.g: a An appointment on Tuesday will be set as Monday).
- 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. - 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.
WiFi Syncing
- In iOS 5 beta 4, wireless syncing is now available on Windows as well as the Mac (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.
- NEW:In some cases, syncing photos may result in only thumbnails on your device. If this happens, unsync Photos then re-sync again.
Xcode
- When uninstalling iOS 5.0 SDK beta 2 or upgrading from iOS 5.0 SDK beta 2 your new install might be missing the /usr/lib/libsvn* files thus making some subversion functionality (such as the perl bindings and git-svn) unavailable.
- If your host machine is a Snow Leopard based, you can get these back by reinstalling
BSD.pkg
from your OS DVD, followed by a Combo Update to Mac OS X 10.6.8 or later. - If your host machine is Lion based you will have to reinstall the OS.
- If your host machine is a Snow Leopard based, you can get these back by reinstalling
- In this beta, device restores using Xcode are disabled. Please use iTunes only to back up and restore your device.
- 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 4, the 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.