Mar 31

os31Apple has released second iPhone OS 3.0 Beta for developers. It’s available for developers on Apple iPhone dev page.

There has been no news about the bug fixes or new additions, But it’s something new and improved of-course .


iPhone SDK Release Notes for iPhone OS 3.0 beta 2

Known Issues

MMS and Tethering
During the beta period, MMS and device tethering are not supported, and should not be used.

NEW: Image thumbnails are not displayed when ABPersonSetImageData() is called before [ABPersonViewController setDisplayedPerson:].

FIXED: Bluetooth stays on after quitting the application that required it.

FIXED: The GKPeerPickerController never sets the session property even when the picker is given a valid GKSession via the -peerPickerController:sessionForConnectionType: delegate method.
FIXED:mDNSResponder blocks the successful setup of a GKSession.

iPhone Simulator
iPhone Simulator does not support network home directories.

FIXED: If you create a MKMapView in Interface Builder, you will need to manually call scrollEnabled and zoomEnabled to enable scrolling and zooming.
FIXED: Tapping on the current location UI will crash third-party applications.
FIXED: MapKit incorrectly calculates region spans (map sometimes zooms in or out too far).

The Message UI framework exports class names without prefixes, which can cause namespace confusion. If you are using the Message UI framework, watch for compiler warnings about duplicate symbols. To avoid namespace issues, you can add prefixes to your own class names.
NEW: Message and MWSync do not share account information.
FIXED: When the cursor is just above the keyboard, auto-correction is drawn behind the keyboard.
NEW: In the first developer seed, MFMailComposeViewController was a UIViewController subclass and had a delegate property. It’s now a UINavigationController subclass. Because the functionality in the mail compose controller’s delegate is totally unrelated to UINavigationController’s delegate, MFMailComposeViewController has a new delegate property, mailComposeDelegate. Third party apps that previously used composeController.delegate should now use composeController.mailComposeDelegate.

FIXED: fontName now returns the PostScript name for apps linked on or after iPhone OS 3.0.

Changing the height of the active application’s status bar does not send application:didChangeStatusBarFrame:.

FIXED: Date Picker can get AM/PM out of sync when toggling back and forth.

You have to specify the image extension to -imageNamed: to get results.

FIXED: Including the degree character in a format string disables text updates to a UILabel object.
UILabel ignores its contentMode property.

After zooming, content inset is ignored and content is left in the wrong position.
UIScrollView can be confused by overlapping touches in separate subviews.
FIXED: UIScrollView will trap all subsequent events if you scroll to the top and touch to stop scrolling before the scroll view has settled down. The workaround is to scroll slightly when this happens.

FIXED: Segmented controllers are drawn 1 pixel too high when added to a toolbar.

UILineBreakModeTruncateHead and UILineBreakModeMiddleTruncation do not work properly for multiline text.

A UITableView with sections cannot reorder a row to the bottom of the last section unless it started in that section.
UITableView can generate an exception when the data model changes during animation.
Applications linked on iPhone OS 3.0 or later will get the new table view cell layout.
UITextView gestures will not work in UIScroller.
Grouped UITableView cells are blackened.
FIXED: UITableView ignores separatorStyle and separatorColor.
FIXED: UITextView objects embedded inside a UITableViewCell never receive touches.
It is very, very expensive to customize row heights (via tableView:heightForRowAtIndexPath:).
Unable to resize table wider than the screen.
NEW: UITableViewCell’s accessoryAction property is deprecated. Instead, implement -tableView:accessoryButtonTappedForRowWithIndexPath in your table view delegate.
NEW: UITableViewCell’s accessoryView is right aligned instead of being offset.
FIXED: Scrolling can create UICGColor leaks.
FIXED: For apps linked on iPhone OS 3.0 and later, tableView:willSelectRowAtIndexPath: and tableView:didSelectRowAtIndexPath: are not called for rows that are already selected.

FIXED: In seed 1, UITabBarController only notified when the view changed, but now notifies when the user touches a tab bar item (even for the currently displayed view).
FIXED: -[UITabBarController setSelectionIndex] doesn’t work for members of the viewControllers array that are offscreen.

FIXED: UITextAlignmentRight doesn’t show the blinking cursor for empty text fields.
FIXED: Text fields in web forms do not support selection.
Cursor is placed too far to the left in empty text fields.
FIXED: The cursor jumps around when typing very long URLs.
No way to select all the text in a field if it exceeds the text field’s visible area.
UITextField cannot be made to resign first responder once offscreen.

FIXED: A UITextView created outside the visible region of a UIScrollView does not display, even when scrolled onscreen, until some other event forces a redraw.
Setting UITextView.editable to YES should not automatically show the keyboard.

FIXED: An endTracking call can prematurely cancel highlighting on a UIControl.
UITouch is not adjusted when a layer has a transform applied to it.
FIXED: UITouch does not properly handle multiple taps from multiple fingers.
An application will not receive UITouchPhaseBegan if a swipe begins on or above the status bar.

Many UIKit controls cannot be resized properly if initialized with a CGRectZero frame.
animationDidEnd fires 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.
FIXED: The UIView callbacks touchesEnded: and touchesCancelled: are sometimes not called.
FIXED: When the accelerometer is turned on, dragging a touch around a multitouch view leaks GSEvent objects.

A full-screen modal navigation controller doesn’t display under the status bar in a non-full-screen window.
FIXED: UINavigationController won’t resize content view automatically if barStyle is changed to/from UIBarStyleBlackTranslucent.
If a view is detached from a given UIViewController as a top-level nib object, but connected as an outlet, the view’s origin is incorrectly moved upwards by approximately 24 pixels.

UIWebView does not make public its UIScrollView.

Xcode/Developer Tools
Teams sharing projects should use “iPhone Developer” as their Code Signing Identity build setting and not touch it again, so the last checkin doesn’t break everyone else because it includes the specific developer’s identity and profile.
You may only use .png files for application icons for the device.
The iPhone SDK is designed for Intel-based Macs and is not supported on PPC-based Macs.
Xcode and the iPhone 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.
Trying to debug two applications at the same time on the same device fails with a broken pipe error in the debugger console.

Compatibility Issues

Some changes in implementation details or implementation of new features in iPhone OS 3.0 have exposed cases where third-party developers were using existing API incorrectly. To ensure maximum compatibility for all versions of iPhone OS, you should carefully read these notes and follow the recommended resolution.

Issue:CFDateFormatter fails to create a date from a string containing time zone information.
This symptom can occur if you pass an incorrect format string to CFDateFormatter, e.g. in CFDateFormatterCreateDateFromString or CFDateFormatterGetAbsoluteTimeFromString. A common mistake is to use an uppercase ‘Z’ to specify the time zone. Only a lowercase ‘z’ is valid.

Issue: An OpenGL ES-based application displays “flashing” or “stale” frames after a call to presentRenderBuffer.
This symptom can occur when an OpenGL ES application calls the EAGL presentRenderbuffer method without first drawing anything. What is seen on screen may contain uninitialized pixels or previously rendered frames. To correct this issue, you should always draw something to your framebuffer before calling presentRenderbuffer. Also note that unless you set the RetainedBackbuffer property on your CAEAGLLayer to enable retained backbuffer mode, the contents of your renderbuffer are not guaranteed to remain valid after a call to presentRenderbuffer.

Issue: An OpenGL ES application is not drawing intended results.
This symptom can occur if the application gives illegal or incorrect arguments to an OpenGL ES function or otherwise uses an OpenGL ES function improperly. When this happens, the OpenGL ES implementation generates an error. This error can be queried by the application using the OpenGL ES routine glGetError. Developers should identify and remove any use cases that generate OpenGL ES errors prior to shipping their application.

Issue: When using OpenGL ES, objects rendered with two-sided lighting may not be rendered properly.
Avoid using two-sided lighting for objects. Objects using two-sided lighting may not be rendered correctly in cases when the back-face is visible to the viewer. Manually selecting the front face with glFrontFace, or simply disabling two-sided lighting altogether, should ensure that the image is rendered correctly.

Issue: OpenGL ES applications are getting incorrect texture filtering.
This can occur when the OpenGL ES texture minification filter and magnification filter are not the same. To workaround this issue, ensure that the minification and magnification filter are the same.

Issue: CoreAnimation Layers with clipped content/geometry do not depth-sort as intended.
Arrange layers of your application that require depth-sorting such that the geometry of the sublayers is contained within the bounds of the layer being sorted. This will ensure that Core Animation is able to correctly sort and cut the layers to resolve depth issues. One way to debug this is to set the masksToBounds property to YES on the layers being sorted (i.e. the layers whose parent has a sublayerTransform with the perspective matrix). This will let you see the scene in the way the depth sorter sees it.

Important: Remember to unset masksToBounds before shipping, otherwise you will lose performance unnecessarily.

Issue: The data an application expects to receive from the URL loading system is not being delivered.
An application might disable the URL caching sub-system, but still implement the NSURLConnection:connection:willCacheResponse: delegate method and hope to receive the data loaded in this delegate callback. The amount of data provided at this time might be incomplete and thus prevent the application from being able to accomplish a particular task, due to insufficient data.

Applications that depend on receiving the data from the URL loading system should implement NSURLConnection:connection:didReceiveData: and append the data given in this delegate callback. When the delegate method NSURLConnection:connectionDidFinishLoading: is called, the application will have all the data from the URL loading system and the application can work with the data.

Issue: The camera or image picker view does not display correctly.
Don’t rely on the structure or classes in the view hierarchy of Apple-provided views, as they are subject to change.

Issue: OpenGL ES rendering using vertex arrays is slower than expected.
Don’t pass unaligned vertex array pointers to OpenGL. Fetching shorts or floats from unaligned addresses incurs additional per-vertex overhead. Ensure that the pointers passed in to glVertexPointer, glColorPointer etc are aligned with respect to the data type being used for that vertex attribute. For instance, 16-bit shorts should be aligned to two byte addresses, 32-bit floats and integers should be aligned to 4 byte addresses, etc.

Issue: Calls to the OpenGL ES routine glDrawTex{s, i, x, f, sv, iv, xv, fv} produce flipped results when rendering to a texture.
Avoid the use of glDrawTex when the target of your rendering is an OpenGL ES texture object. Calls to glDrawTex should work correctly when rendering to a renderbuffer or a CAEAGLLayer.

Issue: The behavior of NSURLConnection’s sendSynchronousRequest:returningResponse:error: is changing.
In the past, the NSURLConnection method +sendSynchronousRequest:returningResponse:error: set the error output parameter to nil if the call succeeded. This was changed to not touch the error return parameter if the call succeeded. The change has been reverted for iPhone OS 3.0, but developers should plan to check the BOOL return value from the method and only access the error parameter if it returns NO. Alternatively, the error parameter can be initialized to nil.

Issue: Calling -setFrame: on a layer with a flipping transform no longer modifies the bounds.origin property of the layer. This was a bug: bounds.origin is documented to be unmodified after the -setFrame: method has completed.
Developers should not use -setFrame: at all on layers with transform matrices that are not 90° rotations because the behavior is undefined, both geometrically and in the implementation. Instead, modify the bounds and position properties of the layer explicitly.

Issue: Crash at NSInternalInconsistencyException when using index paths with UITableView.
Index paths used with UITableView must contain exactly two indexes (section and row). Not doing so now fails an assertion.

Issue: Application crashes in [UIView(CALayerDelegate) _layoutSublayersOfLayer:].
layoutIfNeeded should not be set for controls that you don’t own. Developers should rarely, if ever, need to call layoutIfNeeded; instead use setNeedsLayout:.

Issue: Strange layout occurs when editing turned on for UITableView cells.
In the past, the shouldIndentWhileEditing property on UITableViewCell was incorrectly ignored for plain style table views. The shouldIndentWhileEditing property is now respected when set to YES.

Issue: A UIView placed on top of an NSStringDrawing rendered view is no longer aligned after slight text rendering changes.
Loading html inside of a UIWebView will achieve the same effect. Links will work.

Issue: Can’t rotate in landscape while viewing a document.
If you subclass UIViewController, you have to call through to the superclass’s designated initializer in your own initializer to get correct behavior.

Issue: An OpenGL ES application using depth testing is displaying “flashing” geometry or partially rendered geometry.
This problem can occur when applications do not allocate a depth buffer with sufficient precision to represent the transformed z-values of their primitives. To correct this issue, ensure that if you request a 16 bit depth buffer, your application can adequately represent transformed z-values with 16 bits of precision. Alternately, allocate a 24 bit depth buffer if additional precision is required.

Issue: Objects appear clipped in the table view.
Don’t include subviews that extend beyond their superview’s bounds.

Issue: Views animate when they shouldn’t.
UIKit uses animation blocks in many places, and it’s possible that layout code in any view could be called from within an animation block. If a developer needs to position a view without animation, it is their responsibility to turn off animations when positioning the view.

Issue: Application flickers and then displays a blank screen, and Console outputs <Notice> CoreAnimation: missing sublayer.
Don’t add a window as the subview of another window. Results are undefined.

Issue: Keypad buttons don’t match.
Don’t draw custom buttons on top of existing keyboards. Any number of drawing, event, or compatibility problems could come up.

Issue: In an OpenGL ES application, texture operations are sampling off the edge of single image within a texture atlas into neighboring images.
This symptom can occur when an OpenGL ES application assumes a particular sub-pixel precision is honored by the GPU. To correct this issue, you should always leave enough padding in between the images within a texture atlas to account for sampling texels along the edges of any one image.

\\ tags: ,

One Response to “Apple releases Second iPhone 3.0 Beta (UPDATE)”

  1. Disponibile la beta 2 del firmware 3.0 per iPhone [Aggiornato] - iPhone Italia - Il blog italiano sull’Apple iPhone 3G Says:

    [...] [fonte][immagine] Tags: apple, Dev, Firmware 3.0 beta 2, sdk Condividi Giuseppe Migliorino L’utilizzo del contenuto di questo articolo è soggetto alle condizioni della Licenza Creative Commons. Sono consentite la distribuzione, la riproduzione e la realizzazione di opere derivate per fini non commerciali, purchè venga citata la fonte. [...]

Leave a Reply