If you have an Apple developer account and an iOS-powered device, odds are you’ve heard that Apple released iOS 5 beta 2 tonight. Wondering what Apple changed in this build? We all know wireless iTunes sync is a go and lock screen notifications have been tweaked, but what about all the other little additions and fixes? For those who prefer to know what they’re getting into, we’ve got the full change log posted below after the jump.
Thanks, Ron!
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.
- There is a problem finding a device using Find My iPhone on the MobileMe website (www.me.com) when switching from iCloud back to MobileMe. To workaround this issue:
- On the device go to Settings->Mail, Contacts, Calendar-><your_account>@me.com and Toggle Find My iPhone off and back on. Now the device should show up on MobileMe website.
- It is recommended that you disable Bookmarks on multiple accounts. If they are enabled, the results might be undefined.
- FIXED: When deleting a MobileMe account, an incorrect message is displayed on the device that says “This will delete all Photo Stream Photos from your device”. You can ignore this message.
Address Book
- FIXED: Adding a CardDAV account of any kind (Yahoo, Address Book Server, etc) and then removing the account will result in the loss of the UI button to add a new contact. The button will not appear under Contacts App or the Contacts button under the Phone app.
- FIXED: Modifying the fields of an iCloud contact from an iOS device that was not the original source of the contact causes the contact’s photo to disappear on other iOS devices. The image is still there but it is not fetched properly.
AirPlay
- Starting in iOS 5.0, video content in applications and websites are AirPlay-enabled by default.
- iOS 5.0 supports AirPlay of video via AV Foundation.
- The
Apple TV screen saver may degrade mirroring performance over AirPlay. The screen saver can be disabled inApple TV settings.
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.Assistant
- When signing in with a Classic MobileMe account via iOS 5.0 Setup Assistant, it offers iCloud Backup.
Audio
- Using voice chat in iOS 5 requires setting the kAudioSessionMode_VoiceChat mode on the Audio Session, or setting the AVAudioSessionModeVoiceChat mode on the AVAudioSession object.
- In iOS 5 beta1, voice chat is currently not working on iPhone 3GS and iPod Touch 3rd generation devices.
Bluetooth
- FIXED: When connected to Personal Hot Spot via Bluetooth, the internet connection for web browsing is not successful.
CalDav
- FIXED: Despite turning off reminder sync with an iCloud account, editing in the reminders app displays the option to make a new reminder list under iCloud. By doing so, the list and to do items under the list will sync to other devices.
- NEW: After creating a recurring event locally on the device, the device stops syncing after hitting an error on merge. Removing and re-adding the account acts as workaround for this.
Calendar
- FIXED: When making a change to calendar syncing, like having more than one account on the device and turning on or off one of the account’s calendar syncing, changes may not show up on the calendar UI. To resolve this, kill the calendar app through app switcher and launch it again.
- NEW: All MobileMe calendars were duplicated after turning calendar syncing off and back on.
- NEW: If you launch or manually refresh Calendars on an iPad, your calendars might disappear and you will have to tap “Show All Calendars” to display them again.
GameKit
- FIXED: In games that support “Turn-Based Matches” a player cannot end a match unless all players end the match.
- Match data for turn based matches is currently limited to 4 KB of data.
- In iOS 5.0, notifications for Game Center are off by default. To enable notifications go to Settings->Notifications->Game Center-> and change the Alert Style from None to Banners or Alerts.
- FIXED: Attempting to present a GKPeerPickerController object causes an iPhone 4 to dim and become ‘modal’, but the peer picker never appears.
Graphics
- NEW: In the iOS 5 beta 2, the data type of the center property of GLKSkyboxEffect of the GLKit framework has been changed from GLfloat * to GLKVector3.
- FIXED: In the iOS 5 beta, the envColor property and the colorMaterialEnabled property of the GLKEffectPropertyTexture class (in the GLKit framework) are not operational.
- FIXED: In the iOS 5 beta, the constantColor property of the GLKBaseEffect class (in the GLKit framework) does not report the correct value in gdb.
- FIXED: In the iOS 5 beta, the GLKReflectionMapEffect class (in the GLKit framework) requires either the texture2d0 property, the texture2d1 property, or both configured with a valid texture name (for example, texture2d0.glName = myTextureName) in order to function properly. If one of these properties is not configured, you will get no reflection map rendering and a shader compilation error.
- If you don’t have a texture2d you intend to use with the GLKReflectionMapEffect class, the following code may be added as a workaround to augment the reflection map effect with a base texture:
- GLuint tempTexName;
- GLfloat texels[] = { 1.0f, 1.0f, 1.0f, 1.0f };
- glGenTextures(1, &tempTexName);
- glBindTexture(GL_TEXTURE_2D, tempTexName);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_LINEAR);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0,
- GL_RGBA, GL_FLOAT, texels);
- reflectionMapEffect.texture2d0.glName = tempTexName;
- FIXED: In the iOS 5 beta, disabling any of the three light parameters (light0, light1 or light2 ) of GLKBaseEffect does not work.
- Since the GLKReflectionMapEffect class inherits from GLKBaseEffect, the same behavior is observed for lights used with GLKReflectionMapEffect.
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.
- FIXED: Newer PDFs added to iBooks will not be added to subsequent backups.
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.
- In the iOS 5 beta, support for data protection in iCloud Backup is unavailable. Apps that have protected files will not have any of their data or metadata backed up as a result.
- NEW: After restoring, you may not be able to back up again because the device still thinks it’s restoring. To workaround this issue try syncing apps or media that are missing form iTunes or try deleting your iCloud account and adding it back.
- NEW: If you delete your backup, the feature will be disabled but settings may still indicate that it is enabled and you will have to toggle the BackUp to Cloud switch in Settings.
iCloud Storage
- During the iOS 5.0 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.
- NEW: In this beta, the setSortDescriptors: method of NSMetadataQuery is not supported.
- NEW: 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.
- NEW: There are issues using the Cloud Storage document API in conjunction with protected data which can lead to data corruption.
- NEW: 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
- NEW: 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 quickly, so you should remove the profile after you have reproduced the problem and pulled the logs for the bug report.
iMessage
- NEW: iMessage seed 2 will be unable to communicate with iMessage users on seed 1.
- FIXED: Swiping the iMessage on/off switch and the MMS messaging on/off switch in Settings crashes it. Just tapping or toggling does not crash settings.
- FIXED: In an iMessage conversation, video/audio attachments cannot be viewed in the transcript on either side of the conversation.
iTunes
- The version of iTunes that comes with beta 2 cannot sync devices that have the beta 1 software installed. To avoid this problem, do the following:
- Sync any devices that have beta 1 installed to the version of iTunes that came with beta 1.
- Upgrade iTunes to the version that comes with beta 2.
- Connect the device and install the beta 2 software. (Understand that you might see a failure to sync error when you first connect the device.)
- After installing the beta 2 software, restore from your the backup you made in step 1.
MMS
- NEW: Sending an MMS of large videos does not work.
- 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.
Reminders
- NEW: The Reminders application does not send notifications for reminders that are based upon the entry (and/or exit) of a location if there is no date associated with the reminder.
Settings
- NEW: The “Back Up Now” button is enabled without the backup data class being enabled for the account.
- NEW: If you bring up the keyboard of the terms in Settings->General->Software Update, you cannot dismiss it. You have to force quit Settings to get out.
Springboard
- Push and local notifications for apps appear in the new Notification Center in iOS 5.0. 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.
- Developers are strongly encouraged not to run or debug applications on the device prior to completing the device’s setup assistant. This will lead to unexpected behavior and will be a prevented operation in a future release.
UI Automation
- 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() and unlock() functions of UIATarget have been replaced with the lockForDuration(<seconds>) function.
- Instruments overwrites the loaded automation script, even if another program is editing it.
- Starting iOS 5.0, beta 2 you can now trigger the execution of a 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>
UIKit
- NEW: Returning nil from the tableView:viewForHeaderInSection: method (or its footer equivalent) is no longer sufficient to hide a header. You must override tableView:heightForHeaderInSection: and return 0.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:
- Starting in iOS 5, the exclusiveTouch property of UIControl defaults to YES.
- 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 the UIWebView transparent setting.
- In the iOS 5 beta, the UINavigationBar, UIToolbar, and UITabBar implementations have changed so that the drawRect: method is not called on instances of these classes unless it is implemented in a subclass. Apps that have re-implemented drawRect: in a category on any of these classes will find that the drawRect: 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 override drawRect: in the subclass.
- The indexPathForRow:inSection:, section, and row methods of NSIndexPath now use NSInteger instead of NSUInteger, so that these types match with methods defined on UITableView.
- There is a known issue with presenting a UIVideoEditorControllerobject where it doesn’t show the selected video, which appears blank instead. In certain cases it may also crash.
- Touch events are not getting forwarded to the view in the cameraOverlayView property of UIImagePickerController.
- NEW: The imagePickerController:didFinishPickingMediaWithInfo: method of UIImagePickerController is not returning a URL to the video when recording is complete.
- NEW: 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).
- NEW: We have changed the behavior of scrollToRowAtIndexPath:atScrollPosition:animated: such that UITableViewScrollPositionTop and UITableViewScrollPositionBottom now adjust for the top and bottom portions of the contentInset property.
WebKit
- NEW: In iOS 5.0 beta 2, a new inherited CSS property, -webkit-overflow-scrolling, is available. The value touch allows the web developer to opt in to native-style scrolling in an overflow:scroll element. The default value for this property is auto.
- 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.
WiFi Syncing
- In iOS 5.0 beta 2, wireless syncing is now available for the Mac. It requires iTunes 10.5 beta 2 and 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). Be sure your device is plugged into a power source when performing Wireless syncs.
- 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 this beta, iTunes may incorrectly report Photos as “Other” in the capacity bar. Photo syncing otherwise works as expected.
Xcode
- You are strongly encouraged to back up your device using iTunes before restoring.
- 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.
- On some desktop machines, Xcode’s memory usage inflates incredibly fast while restoring a device or copying an IPSW. As a workaround use iTunes to restore.
- Sometimes Xcode 4.2 switches to a wrong scheme or run destination after an on-disk update.
- In this beta, crash logs (either unsymbolicated or symbolicated) do not appear in Xcode Organizer. To make them appear in the Xcode Organizer, you will have to rename the device.
- NEW: In iOS 5.0 beta 2, 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.