iOS 6 beta 3 διαθέσιμη στους developers

To iOS 6 έχει παρουσιαστεί και αναμένεται η ημερα διάθεσης προς όλους τους χρήστες των Apple devices. Πριν απ'αυτό όμως οι δοκιμαστικές εκδόσεις που στόχο έχουν να διορθώσουν όλα τα προβλήματα, είναι σε εξέλιξη. Έτσι λοιπόν η τρίτη Beta του iOS 6 είναι πλέον διαθέσιμη σε όλους τους developers και μαζί μ'αυτή αποκαλύπτονται σημαντικές αλλαγές σε σχέση με τη προγενέστερη έκδοση. Σχεδόν κάθε σημείο του mobile OS βελτιώνεται και σημαντικά ή μη προβλήματα διορθώνονται για την πιο ορθή λειτουργία. Address book, Game Center, iCloud, iMessage, FaceTime, Maps και άλλα πολλά δέχονται "πείραγματα" φυσικά προς το καλύτερο. Τέλος, ακολουθεί το πλήρες αρχείο αλλαγών, όπως το εξέδωσε η εταιρεία. Για περισσότερες πληροφορίες μπορείτε να το διαβάσετε:

Notes and Known Issues

The following issues relate to using iOS SDK 6.0 to develop code.

Address Book
When an app is in a fresh privacy state and tries to present a ABNewPersonViewController, the user cannot dismiss that view controller properly even if they allow access to contacts. The user must force quit the app and relaunch.
Requesting access to contacts:
Users are able to grant or deny access to contact data on a per-app basis. To request access to contact data, call the ABAddressBookRequestAccessWithCompletion function after calling the ABAddressBookCreateWithOptions function. The ABAddressBookRequestAccessWithCompletion function does not block the app while the user is being asked to grant or deny access. Until access has been granted, the ABAddressBookRef object will not contain any contacts and any attempt to modify contacts fails with a kABOperationNotPermittedByUserError error. The user is prompted only the first time access is requested; any subsequent calls to ABAddressBookCreateWithOptions will use the existing permissions. The completion handler is called on an arbitrary queue. If the ABAddressBookRef object is used throughout the app, then all usage must be dispatched to the same queue to use ABAddressBookRef in a thread-safe manner.
Checking access authorization status:
An app can use the authorization status API to check if it can access contacts, calendars, reminders or photo library. This API is independent from the the request access API and will not prompt the user to grant or deny access. With this API an app can adjust the display of its UI elements that would access the data class. For example, if access to contacts is authorized or not determined then a UI button to pick a contact can be displayed.
For Address Book, call the ABAddressBookGetAuthorizationStatus function. For Event Kit, call the authorizationStatusForEntityType: class method of EKEventStore. For Assets Library, call the authorizationStatus class method of ALAssetsLibrary. The meaning of the status values that are returned is as follows:
Authorization Status Not Determined – The user has not yet made a choice regarding whether this app can access the data class.
Authorization Status Restricted – This app is not authorized to access the data class. The user cannot change this app’s status, possibly due to active restrictions such as parental controls being in place.
Authorization Status Denied – The user explicitly denied access to the data class for this app.
Authorization Status Authorized – This app is authorized to access the data class.

Apple TV
In some cases, the screen may show the wrong resolution. Restart your Apple TV to return it to the correct resolution.
FIXED: Netflix videos may not resume where you left off.
FIXED: The History list in the YouTube app gets cleared when you exit and reenter the app.
Apple TV may be slow to respond while a download is in progress in the background.
Apple TV may restart while using the Remote app.
Apple TV may restart when changing the system language.
Photo Stream does not load when logging in a second time. Restart Apple TV to resolve.
Music does not play during photo slideshows.
New Behaviors:
Pick remote speakers in Settings > AirPlay.
Set an onscreen code for AirPlay in Settings > AirPlay.
Save multiple iTunes Store accounts in Settings > iTunes Store.
Press and hold the Select button to rearrange icons on the main menu.
Hide the main menu icons in Settings > General > Parental Controls.

Bonjour
The NSNetService class and CFNetService APIs do not include P2P interfaces by default. To browse, register, or resolve services over P2P interfaces, an app needs to use the Bonjour DNSService*() APIs noted below.
Setting the interfaceIndex parameter to kDNSServiceInterfaceIndexAny in the following API’s will not include P2P interfaces by default. To include P2P interfaces, you must now set the kDNSServiceFlagsIncludeP2P flag when using kDNSServiceInterfaceIndexAny or set the interfaceIndex to kDNSServiceInterfaceIndexP2P. The affected APIs are:
DNSServiceBrowse
DNSServiceRegister
DNSServiceResolve
DNSServiceRegisterRecord
DNSServiceQueryRecord

Dictionary
There is a known issue with dictionaries when attempting to define a word in any language other than English or Japanese. When the reference library is presented, the user is presented with the option to download a dictionary – that download may not begin. The user can tap outside the popover on an iPad or tap the “Done” button on the iPhone or iPod touch in order to dismiss the download request.

Event Kit
Requesting access to calendars or reminders:
Users are able to grant or deny access to event and reminder data on a per-app basis. To request access to event and/or reminder data, call the requestAccessToEntityType:completion: method of EKEventStore. This will not block the app while the user is being asked to grant or deny access. Until access has been granted for an entity type, the event store will not contain any calendars for that entity type, and any attempt to save data will fail.
The user will only be prompted the first time access is requested; any subsequent instantiations of EKEventStore will use the existing permissions. The completion handler is called on an arbitrary queue.

Game Center
When creating a new Game Center account in-app on the iPad, the popover for selecting the month for your date of birth shows up with no content to select.
The authenticate method of GKLocalPlayer has been removed. Authentication will automatically commence when the completion handler is set.

iCloud
When creating an iCloud account, you can use any email based Apple ID, or you can use your existing iCloud account. If you had a MobileMe account that you have not yet moved to iCloud, you must move it first by visiting http://me.com. Moving to iCloud is only available for a limited time. Logging into a MobileMe account is not supported in iOS 6.
icloud.com email addresses are now available for iCloud mail users. Users signing up for new Apple IDs, or enabling Mail on their iCloud account for the first time, will automatically receive an @icloud.com email address instead of a me.com email address. iCloud users with @me.com addresses that have been used with iOS 6 beta 3 will receive an @icloud.com email address that matches their @me.com address.
icloud.com email cannot be sent from www.icloud.com. Users should use http://beta.icloud.com at this time if they wish to send email from their icloud.com address using a web browser.
Provisioning profiles must be enabled for iCloud in the iOS Provisioning Portal. To enable a provisioning profile for iCloud, navigate to the App ID section of the iOS Provisioning Portal and configure your App ID for iCloud. After enabling the App ID for iCloud, regenerate your provisioning profiles to enable them for iCloud.
The setSortDescriptors: method of NSMetadataQuery is not supported.
In iOS 6, files that are protected via Data Protection cannot be used with iCloud Storage APIs.
File names are case-insensitive in OS X but case-sensitive in iOS. This can lead to problems when sharing files between the two platforms using iCloud. You should take steps on iOS to avoid creating files whose names differ only by case.
The behavior of coordinated read operations on iCloud Documents has changed. On previous iOS releases, when your app performed a coordinated read operation on a file or package, and the iCloud daemon noticed that there was a newer version of the item available, the coordinated read operation blocked until the newer version of the item was downloaded and written to the disk.
Starting in iOS 6 beta 3, when you start a coordinated read operation on a file or package for which you already have a local version, the coordinated read will be granted as soon as possible, and the new version, if any, will download in the background. This call will block for downloading reasons only if you do not have any version of the file available locally.
Additionally, when the file is conflicted, the iCloud daemon will not wait until it has all the conflict losers of the file available to make the file available to your app. It will make the different versions of the conflicted file available as soon as it can. Your app can use the existing file coordination and the UIDocument callbacks to be notified when the conflict losers have been downloaded and are available.

iMessage & FaceTime
FIXED: The Answer and Decline buttons are missing when receiving calls in landscape orientations.

iTunes
iTunes 10.6.3 is required for iOS SDK 6.0.
FIXED: When restoring from an iTunes backup, the device intermittently shows up as a new device after rebooting. If that happens, set up the device as a “new device” when prompted to restore for the 2nd time. All data should have been restored correctly but sync settings including App arrangement in iTunes are lost.

Maps
In iOS 6 and later, Map Kit is built on a new infrastructure hosted by Apple. Earlier iOS releases will continue to use Google’s service.
API compatibility will be maintained (see known issues below).
Maps are now supported in the Simulator.
Map data will continue to evolve—only a limited amount of high resolution satellite imagery is currently available.
FIXED: If Maps is not running in the background, a “Maps cannot connect to the internet” error is displayed when it is launched from a 3rd party app.
FIXED: If Maps has not yet been launched, the current location does not show up when it is launched from a 3rd-party app.
Routing apps that do not specify a coverage file during development will always be displayed in the Maps routing search results.
Testing and debugging of coverage files for routing apps is only supported during development through the Xcode “Run” workflow. (You can specify the coverage file for a given Run scheme using the Options pane of the Run section of the scheme editor.) Apps that are archived and distributed (outside of the App Store) onto devices will not have access to the app’s coverage files.
Maps does not zoom into the current location when launched from a 3rd party app.

Newsstand
Only simple http downloads will work with Newsstand.

Passbook
FIXED: An airplane icon appears between the origin and destination for all transit types.
The “Description” field is now a required field for a Pass. All passes created without it will fail to validate and will not ingest.
FIXED: The Passbook database has been reset. You’ll need to add your passes again.
Passbook in the simulator no longer requires https/ssl when using a webServiceURL when ingesting a pass.
Unable to show boarding passes on lock screen.

Reminders
FIXED: There are issues when adding and editing reminders in the Reminders app on iPhone devices:
The Done button is missing when adding a new reminder.
The app crashes when you tap the Edit button to edit a reminder.

Security
In iOS 5, signing a certificate with an MD5 signature is not supported. Please ensure that certificates use signature algorithms based on SHA1 or SHA2.
In iOS 6, there are improved privacy controls for Calendars, Reminders, Contacts, and Photos.
Users will see access dialogs when an app tries to access any of those data types. The user can switch access on and off in Settings > Privacy.
Developers can set a “purpose” string for each class of isolated data. iOS displays this string to users to help them understand why their data is being requested. These strings can be added using Xcode’s Project editor, in the Info tab. The relevant key names begin with the string “Privacy -”.
There are changes to the Event Kit and Address Book frameworks to help developers with this feature.

Simulator
The app delete confirmation alert panel takes a while to show up in iOS Simulator.
FIXED: Tapping the buy button in the view of an SKStoreProductViewController object in iOS Simulator causes the app to crash.
No privacy alerts are displayed in iOS Simulator for apps that access Photos, Contacts, Calendar and Reminders.
Downloading in-app purchase hosted content in iOS Simulator is not supported.
When attempting to play an MP3 sound in the Simulator, you will hear a popping sound instead.
FIXED: Using the iOS 5.1 SDK with the iPad (Retina) profile will result in a SpringBoard crash. The iOS 5.1 SDK works with all other profiles and the iPad (Retina) SDK works with the iOS 6.0 SDK.
FIXED: Ads of type ADAdTypeMediumRectangle do not appear in iPad Simulator.

Shared Photo Stream
User must go to Settings > iCloud to ensure that they receive Shared Photo Stream Notifications.
In order to share a Photo Stream with iOS 6 beta, you must invite someone using their iCloud email address or they will not receive the invitation.
Upgrading from iOS 6 beta 1 to beta 2 will cause your device to re-download all of your Shared Photo Streams.
The Shared Photo Stream feature is set to OFF when updating from iOS 6 beta 1 to a later release. The default setting should be ON.
Turning off Shared Photo Streams may leave camera in an unresponsive state, force quitting camera will resolve this issue.

Social
Weibo shows up in the Settings app only if a Chinese keyboard is enabled.
The requestAccessToAccountsWithType:withCompletionHandler: method of ACAccountStore is now deprecated. To access user accounts, please use the requestAccessToAccountsWithType:options:completion: method. In the options parameter of this new method, pass nil to access Twitter and Weibo accounts. To access Facebook accounts, pass a dictionary with the following keys (which are documented in ACAccountStore.h):
ACFacebookAppIdKey
ACFacebookPermissionsKey
ACFacebookPermissionGroupKey
You should no longer add this dictionary to your app’s Info.plist file, as was required in beta 1.

SpringBoard
FIXED: After restoring a device in iTunes or performing an “Erase All Contents and Settings”, the current wallpaper may not appear until the device is rebooted once.

Status Bar
It is now possible to set status bar tint parameters in your app’s Info.plist file. You might do this to ensure that the status bar color matches the navigation bar color of your app during startup. To set the status bar tint, add the UIStatusBarTintParameters key to your Info.plist file. The value of this key is a dictionary with the appropriate values describing the navigation bar your app has at startup time. Inside the dictionary should be the UINavigationBar key, whose value is also a dictionary. That dictionary contains the initial navigation bar’s style (with the Style key) and whether it’s translucent (with the Translucent key). If your navigation bar uses them, you can also specify its tint color (with the TintColor key), or the name of its custom background image (with the BackgroundImage key).

Σχόλια