iOS SDK Release Notes for iOS 2.2
Please report any bugs not mentioned in the "Known Issues" using the Apple Bug Reporter on the Developer Connection website at: http://developer.apple.com/bugreporter/.
For issues with your application, please provide a sample application that demonstrates the issue you are experiencing.
When reporting any bug, please provide the OS and/or SDK version you are using and the specific hardware you are experiencing it on.
When reporting crashing issues, include any pertinent crash logs. Crash logs can be retrieved after syncing with iTunes.
Macintosh users can find crash logs in
Windows users can find crash logs in
Application Data\Apple Computer\Logs\CrashReporter\MobileDevice\<iPhone name>
If you discover a bug on an earlier release when a later release is available, please update your device to the latest release and verify that it still occurs, as your bug may have been addressed in the newer release.
Notes of Interest
Line-in accessories are now supported in the SDK. Applications will be able to receive audio input on all devices. You should use the
kAudioSessionProperty_AudioInputAvailableto determine if audio input is available at any given time.
By default, third party applications now respect the ringer switch position. If you want to play audio even when the ringer switch is in the silent position, use AudioSession APIs and set an appropriate category.
kAudioSessionCategory_SoloAmbientis a new audio session category that respects the ringer switch like
kAudioSessionCategory_Ambient. However, unlike
kAudioSessionCategory_Ambient, which mixes in with songs, it interrupts all other audio playback, allowing the application to use the hardware audio codecs (MP3, AAC, Apple Lossless).
By default, audio will no longer play when the screen is locked. To play audio in this state, use the
kAudioSessionCategory_MediaPlaybackaudio session category.
Audio silenced when the screen is locked will remain silent even after the phone is woken up. To play audio after the phone sleeps and wakes up, set up an audio session and, when you hear the interruption end, restart your audio.
AVAudioPlayeris a new audio object in AVFoundation for playing audio files that provides the following:
Simple commands for play, stop, pause, setting time and volume.
Will play any audio file recognized by
AudioQueue(the objects used to implement this class).
Provides a delegate to handle interruptions that form part of the services of
User can enable metering and use the resulting values to present a visual display of the audio levels being played at any given time.
The user of the object still controls the overall behavior and interaction of the audio player through the audio session APIs and categories.
kAudioFormatProperty_FirstPlayableFormatFromList='fpfl' is a new property added to audio format. This property can be used to take a format list from one of these file formats and return from that list the first format in the list that can be played on any given device. This is based on the availability of decoders and other factors in the specification that may influence the ability of a given implementation to render the contents of a bitstream. If the format list from the audio file/stream has more than one entry in it, or the
FirstPlayableFormatproperty is implemented, do the following:
Pass that format list to this property to get back the index of the actual format you should use to create an audio queue.
If the property is not implemented (earlier iOS for example) then just take the last item in the format list (this is the most compatible) to create an audio queue.
If a nil NIB name is passed to
-loadViewis not overridden for the view controller subclass, the view controller will attempt to load a NIB with a name matching the view controller.
UIInterfaceOrientationproperty in an application's
Info.plistis now respected for view controller-based applications. To launch an application in landscape, set the
UIInterfaceOrientationproperty in the property list and make sure the view controller returns
YESfor the desired orientation in
When presenting or dismissing a view controller modally, the appear & disappear methods will be called exactly once for a modal present or dismiss, with the correct animation parameters.
Setting the first responder to a
-viewWillAppear:is now supported. Doing this will animate the keyboard in to match a push, pop, modal present or modal dismiss.
iOS Simulator does not support network home directories.
The version of Foundation in the simulator platform includes functionality not included in iOS. To ensure functionality is not used that is not present on iPhone, check the documentation for availability information.
Toggling between 11AM and 12PM may result in the Date Picker showing 12AM rather than 12PM.
You have to specify the image extension to
-imageNamed:to get results.
Including the degree character in a format string disables text updates to a
After zooming, content inset is ignored and content is left in the wrong position.
UILineBreakModeMiddleTruncationdo not work properly for multiline text.
UITextViewobjects embedded inside a
UITableViewCellnever receive touches.
It is very, very expensive to customize row heights (via
Unable to resize table wider than the screen.
UITextFieldcannot be made to resign first responder once offscreen.
YESshould not automatically show the keyboard.
-[UIToolbarController setSelectionIndex]doesn't work for members of the
viewControllersarray that are offscreen.
UITouchis not adjusted when a layer has a transform applied to it.
UITouchdoes not properly handle multiple taps from multiple fingers.
An application will not receive
UITouchPhaseBeganif a swipe begins on or above the status bar.
Many UIKit controls cannot be resized properly if initialized with a
animationDidEndfires too soon and can cause animations to stutter if you do too much work in the callback.
If a view subclass implements
-drawRect:then the background color for that view subclass cannot be animated.
UINavigationControllerwon't resize content view automatically if
barStyleis changed to/from
If a view is detached from a given
UIViewControlleras a top-level nib object, but connected as an outlet, the view's origin is incorrectly moved upwards by approximately 24 pixels.
Links don't highlight when WebKit is single threaded.
You may only use
.pngfiles for application icons for the device.
The iOS SDK is designed for Intel-based Macs and is not supported on PPC-based Macs.
Xcode and the iOS SDK only work in 32-bit mode; 64-bit mode is not supported.
When running and debugging on a device, be sure to turn off Passcode lock.
FIXED: Using the Xcode menu Run > Start with Performance Tool > <instrument> does not work even though it is enabled. The application is not uploaded to the device. When the application is already present, Instruments targets the local machine and "Target failed to start" appears in the tracks.
Trying to debug two applications at the same time on the same device fails with a broken pipe error in the debugger console.
FIXED: Instruments will act unpredictably with multiple devices attached.