iOS SDK Release Notes for iOS 4.2
iOS SDK 4.2 provides support for developing iOS applications and includes the complete set of Xcode tools, compilers, and frameworks for creating applications for iOS and Mac OS X. These tools include the Xcode IDE and the Instruments analysis tool among many others.
With this software you can develop applications that run on iPhone, iPad, or iPod touch running iOS 4.2. You can also test your applications using the included iOS Simulator, which supports iOS 4.2. Installing iOS SDK 4.2 requires a Macintosh computer running Mac OS X 10.6.4 (Snow Leopard) or later.
For more information and additional support resources, visit:
Please report any bugs not mentioned in the Notes and Known Issues section using the Apple Bug Reporter on the Apple Developer website at: http://developer.apple.com/bugreporter/. Additionally, you may discuss these issues and iOS SDK 4.2 in the Apple Developer Forums: http://devforums.apple.com.
Notes and Known Issues
The following issues relate to using the 4.2 SDK to develop code.
If you are upgrading your iPad from iOS 4.2 GM Seed to iOS 4.2 GM, Xcode will extract symbols from the device the first time you connect the device. This process takes only a few minutes.
There is a new Base SDK setting called "Latest SDK". This is the recommended choice for all projects and will cause your project to always build against the newest available iOS SDK.
The Overview popup menu will display "Base SDK Missing" if a project was created with an SDK earlier than iOS SDK 4.2. However, after selecting a new SDK that Overview popup may still display "Base SDK Missing".
To work around the issue, close and reopen the project window.
The iPad screen rotation lock switch now functions as a sound/silent switch in iOS 4.2. This switch behaves the same way as the Ring/Silent switch on iPhone.
Applications targeted for iPad will need to take this into account when implementing audio behaviors.
Calendar can now import
.icsfiles directly as a way to add events. If your app has access to
.icsfiles, you should test importing them using the
Applications can use the
GKFriendRequestComposeViewControllerclass to initiate friend requests.
The GameKit view controllers for leaderboards, achievements, matchmaking, and friend requests must be presented modally. Presenting them any other way will result in an exception and unexpected behavior. This affects
In iOS 4.2, the local player is automatically authenticated again when an app enters the foreground. This will generate an authentication changed notification. If the app is linked with iOS 4.2 or later, the authentication completion handler will also be called (it is retained indefinitely).
During debugging, pausing or resuming an iOS application while it is backgrounded is currently unsupported and can result in undefined application behavior.
For applications built against iOS 4.2 and later, MapKit will now conditionally display annotation views based on the currently visible region of the map. To account for this, developers should make sure they reuse annotation views as documented and never assume that the absence of an annotation view implies the absence of a corresponding annotation
iOS 4.2 devices can print wirelessly only to printers that support AirPrint and are running the latest available firmware. Some currently available printers that support AirPrint are:
HP Photosmart Premium Fax e-All-in-One Printer - C410
HP Photosmart Premium e-All-in-One Printer series - C310
HP Photosmart Plus e-All-in-One Printer series - B210
HP ENVY 100 e-All-in-One Printer Series - D410
HP Photosmart eStation Printer series - C510
Building an app that weak links
CoreVideo.frameworkagainst the 4.2 Simulator SDK and then running that application against the 3.2 Simulator will result in a crash. The same configuration will work when building against the 4.2 device SDK and running on a 3.2 device.
The following frameworks currently do not support weak linking by way of the
When targeting older versions of iOS, you can check the class availability in these frameworks by calling the
NSClassFromStringfunction and seeing if it returns a non-
nilvalue. For information about using the
NS_CLASS_AVAILABLEmacro, see iOS 4.2 in What's New in iOS.