watchOS SDK Release Notes for watchOS 2 Beta 4

Contents:

Introduction

watchOS SDK 2.0 beta provides support for developing watchOS apps. It is packaged with a complete set of Xcode tools, compilers, and frameworks for creating apps for watchOS. These tools include the Xcode IDE and the Instruments analysis tool, among many others.

This version of watchOS is intended for installation only on devices registered with the Apple Developer Program. Attempting to install this version of watchOS in an unauthorized manner could put your device in an unusable state.

Bug Reporting

For issues not mentioned in the Notes and Known Issues section, please file bugs through the Apple Developer website (https://developer.apple.com/bug-reporting/ios/). Additionally, you may discuss these issues and watchOS SDK 2.0 in the Apple Developer Forums: https://forums.developer.apple.com/community/pre-release/watchos-2-beta.

Autosubmission of Diagnostic and Usage Data

Location Services, Diagnostics and Usage, and Contacts settings are shared between Apple Watch and iPhone. By default, the iOS 9 beta automatically sends anonymous diagnostic and usage data back to Apple. This includes information about crashes, freezes, kernel panics, and information about how you use Apple and third-party software, hardware, and services. This information is used to help Apple improve the quality and performance of its products and services. You can stop autosubmission of diagnostics and usage data by going to Settings > Privacy > Diagnostics and Usage > Don’t Send on your iOS 9 iPhone.

Notes and Known Issues

Activation Lock

Note

Activation Lock is enabled on your Apple Watch if you have Find My iPhone enabled on your iPhone.

Apple Pay

Fixed in Beta 4

Apple Pay is not functional.

Connectivity

Known Issue

Your app may crash when using NSNumber and NSDate objects with the WCSession API.

Workaround: Convert an NSNumber or NSDate object to a string before calling WCSession APIs. Do the opposite conversion on the receiving side.

Contacts

Known Issue

Contact syncing doesn’t work in Simulator.

Complications

Fixed in Beta 4

Known Issues

File Transfers

Fixed in Beta 4

File transfers fail from Watch to iPhone.

Glances

Fixed in Beta 4

You may not see your glance appear while debugging in Simulator or on a device.

Known Issues

Glances become unusable when you have attached with a debugger.

Haptics

Fixed in Beta 4

Haptic feedback does not work with this beta.

Keychain

Note

Keychain items created on an Apple Watch are not viewable on an iOS device.

Notifications

Fixed in Beta 4

The following callbacks in WKExtensionDelegate have not yet been implemented.

  • - (void)didReceiveRemoteNotification:(NSDictionary *)userInfo;

  • - (void)didReceiveLocalNotification:(UILocalNotification *)notification;

Privacy

Fixed in Beta 4

If you disable the "Fitness Tracking" privacy setting on the companion device for your app, the app on the Watch side will still receive motion updates.

Siri

Known Issue

When invoking Siri by pressing the Digital Crown from the watch face, Home screen, or over an app, you may see words that you did not speak added to the Siri request.

Workarounds:

  • Use Hey Siri instead of the Digital Crown to trigger Siri.

  • Trigger Siri using the Digital Crown with Siri already in the foreground.

Watch App

Known Issues

  • Pairing iOS 9 beta 3 with watchOS 2 beta 1 or 2 requires you to sign out of your AppleID in Messages prior to pairing and to skip iCloud sign-in during pairing. Pairing with watchOS 2 beta 3 and WatchOS 1 is not impacted.

  • Tapping Cancel does not work in the iForgot work flows in Watch Setup Assistant.

WatchKit

Known Issue

Some apps that run in Simulator may fail to launch on device.

Note: If you see this, please file a Radar so that we can follow up to obtain logs.


'iOS' 카테고리의 다른 글

iOS 9 Beta 5 Release Notes  (0) 2015.08.07
애플 watchOS 2 릴리즈 노트 베타4  (0) 2015.08.03
iOS 9 Beta 3 Release Notes  (0) 2015.07.10
iOS 8.4 업데이트  (0) 2015.07.01

iOS SDK Release Notes for iOS 6 beta 4

Contents:

Introduction
Bug Reporting
Notes and Known Issues


Introduction

iOS SDK 6.0 provides support for developing iOS apps, and it includes the complete set of Xcode tools, compilers, and frameworks for creating apps for iOS and OS X. These tools include the Xcode IDE and the Instruments analysis tool, among many others.

With this software you can develop apps for iPhone, iPad, or iPod touch running iOS 6. You can also test your apps using the included iOS Simulator, which supports iOS 6. iOS SDK 6.0 requires a Mac computer running OS X 10.7.4 or higher (Lion).

This version of iOS is intended for installation only on devices registered with Apple’s Developer Program. Attempting to install this version of iOS in an unauthorized manner could put your device in an unusable state.

For more information and additional support resources, visit http://developer.apple.com/programs/ios/.

Bug Reporting

To report any bugs not mentioned in the “Notes and Known Issues” section, please use the Apple Bug Reporter on the Apple Developer website (http://developer.apple.com/bugreporter/). Additionally, you may discuss these issues and iOS SDK 6 in the Apple Developer Forums: http://devforums.apple.com. You can get more information about iCloud for Developers at http://developer.apple.com/icloud.

Notes and Known Issues

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

Accounts Framework

  • When requesting access to Facebook accounts, the only key required in your options dictionary is ACFacebookAppIdKey. ACFacebookPermissionGroupKey and ACFacebookAppVersionKey are now obsolete.

    If you request a write permission under ACFacebookPermissionsKey, such as publish_stream, you must provide a value for ACFacebookAudienceKey, which can be one of ACFacebookAudienceEveryone, ACFacebookAudienceFriends, or ACFacebookAudienceOnlyMe.

Address Book

  • FIXED: 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 the user allows 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 the photo library. This API is independent from 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

  • FIXED: In some cases, the screen may show the wrong resolution. Restart your Apple TV to return it to the correct resolution.

  • FIXED: Apple TV may restart while using the Remote app.

  • FIXED: Apple TV may restart when changing the system language.

  • FIXED: Photo Stream does not load when logging in a second time. Restart Apple TV to resolve.

  • Music does not play during photo slideshows.

  • Screen saver may revert to using the default images after installing update.

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 APIs 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

  • FIXED: 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 given 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 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 be prompted only 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

  • FIXED: When creating a new Game Center account in-app on the iPad, the popover for selecting the month of your date of birth shows up with no content to select.

  • The authenticate method of GKLocalPlayer has been removed. Authentication will commence automatically when the completion handler is set.

  • As of iOS 6 beta 4, GKGameCenterViewController singleton is no longer supported.

  • As of iOS 6 beta 4, GKScore+Sharing.h file and associate category are removed.

iCloud

  • When creating an iCloud account, you can use any email-based Apple ID or your existing iCloud account. If you had a MobileMe account that you did not move to iCloud, you can use that Apple ID to sign up for a new iCloud account (none of your previous MobileMe data will be present).

    • 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 or later 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 use a web browser to send email from their icloud.com address.

    • @icloud.com addresses will be added within two weeks of first using iOS 6.

  • 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.

  • Filenames are case-insensitive in OS X but case-sensitive in iOS. This can lead to problems when using iCloud to share files between the two platforms. On iOS, you should take steps to avoid creating files with names that 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.

    As of 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.

iTunes

  • iTunes 10.6.3 is required for iOS SDK 6.0.

  • Previous public betas of iOS can no longer download iTunes Match songs.

Location

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 Simulator.

    • Map data will continue to evolve—only a limited amount of high-resolution satellite imagery is currently available.

  • 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.

  • FIXED: Maps does not zoom into the current location when launched from a third-party app.

Newsstand

  • FIXED: Only simple HTTP downloads will work with Newsstand.

Passbook

  • The Description field is now a required field for a Pass. All passes created without it will fail to validate and will not ingest.

  • Passbook in Simulator no longer requires https/ssl when using a webServiceURL when ingesting a pass.

  • FIXED: Unable to show boarding passes on lock screen.

  • Passes will no longer fall back to background.png if strip.png is not included in your pass bundle.

  • The contents of the userInfo dictionary for PKPassLibraryDidChangeNotification have changed in the case of removed passes. Please consult the latest documentation for the new userInfo dictionary.

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 Calendar, 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, which is 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

  • FIXED: The app delete confirmation alert panel takes a while to show up in iOS Simulator.

  • 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 Simulator, you will hear a popping sound instead.

Shared Photo Stream

  • Users 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 his iCloud email address; otherwise, he will not receive the invitation.

  • Upgrading from iOS 6 beta 1 to beta 2 will cause your device to redownload 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.

  • FIXED: Turning off Shared Photo Streams may leave Camera in an unresponsive state; force quitting the Camera app 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):

    You should no longer add this dictionary to your app’s Info.plist file, as was required in beta 1.

  • When requesting access to Facebook accounts, the only key required in your options dictionary is ACFacebookAppIdKey. ACFacebookPermissionGroupKey and ACFacebookAppVersionKey are now obsolete.

    If you request a write permission under ACFacebookPermissionsKey—such as publish_stream—you must provide a value for ACFacebookAudienceKey, which can be one of ACFacebookAudienceEveryone, ACFacebookAudienceFriends, or ACFacebookAudienceOnlyMe.

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 your app’s navigation bar color 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. Inside the dictionary should be the UINavigationBar key, which has a value that is also a dictionary. That dictionary contains the initial navigation bar’s style (with the Style key) and whether it is 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).

UIKit

  • In iOS 5.1, the UISplitViewController class adopts the sliding presentation style when presenting the left view (previously seen only in Mail). This style is used when presentation is initiated either by the existing bar button item provided by the delegate methods or by a swipe gesture within the right view. No additional API adoption is required to obtain this behavior, and all existing APIs—including that of the UIPopoverController instance provided by the delegate—will continue to work as before. If the gesture would be insupportable in your app, setting the presentsWithGesture property of your split view controller to NO disables the gesture. However, disabling the gesture is discouraged because its use preserves a consistent user experience across all apps.

  • FIXED: In iOS 6, changes have been introduced so that you no longer need to set a delegate and implement a method for Single-Finger and Single-Tap gesture recognizers. This makes them work well with the UIControl objects.

  • In iOS 6 and later, the UIWebView class paints its contents asynchronously.

  • Autorotation is changing in iOS 6. In iOS 6, the shouldAutorotateToInterfaceOrientation: method of UIViewController is deprecated. In its place, you should use the supportedInterfaceOrientationsForWindow: and shouldAutorotate methods.

    • More responsibility is moving to the app and the app delegate. Now, iOS containers (such as UINavigationController) do not consult their children to determine whether they should autorotate. By default, an app and a view controller’s supported interface orientations are set to UIInterfaceOrientationMaskAll for the iPad idiom and UIInterfaceOrientationMaskAllButUpsideDown for the iPhone idiom.

    • A view controller’s supported interface orientations can change over time—even an app’s supported interface orientations can change over time. The system asks the top-most full-screen view controller (typically the root view controller) for its supported interface orientations whenever the device rotates or whenever a view controller is presented with the full-screen modal presentation style. Moreover, the supported orientations are retrieved only if this view controller returns YES from its shouldAutorotate method. The system intersects the view controller’s supported orientations with the app’s supported orientations (as determined by the Info.plist file or the app delegate’s application:supportedInterfaceOrientationsForWindow: method) to determine whether to rotate.

    • The system determines whether an orientation is supported by intersecting the value returned by the app’s supportedInterfaceOrientationsForWindow: method with the value returned by the supportedInterfaceOrientations method of the top-most full-screen controller.

    • The setStatusBarOrientation:animated: method is not deprecated outright. However, it now works only if the supportedInterfaceOrientations method of the top-most full-screen view controller returns 0. This puts the responsibility of ensuring that the status bar orientation is consistent into the hands of the caller.

    • For compatibility, view controllers that still implement the shouldAutorotateToInterfaceOrientation: method do not get the new autorotation behaviors. (In other words, they do not fall back to using the app, app delegate, or Info.plist file to determine the supported orientations.) Instead, the shouldAutorotateToInterfaceOrientation: method is used to synthesize the information that would be returned by the supportedInterfaceOrientations method.

  • The willRotateToInterfaceOrientation:duration:, willAnimateRotationToInterfaceOrientation:duration:, and didRotateFromInterfaceOrientation: methods are no longer called on any view controller that makes a full-screen presentation over itself—for example, by calling presentViewController:animated:completion:.

    • You should make sure that your apps are not using these methods to manage the layout of any subviews. Instead, they should use the view controller’s viewWillLayoutSubviews method and adjust the layout using the view’s bounds rectangle.

  • In iOS 6, the viewWillUnload and viewDidUnload methods of UIViewController are now deprecated. If you were using these methods to release data, use the didReceiveMemoryWarning method instead. You can also use this method to release references to the view controller’s view if it is not being used. You would need to test that the view is not in a window before doing this.

  • It is unsupported to set values for the shadowOffset or shadowColor properties of a UILabel object if its attributedText property contains a valid attributed string. Instead, use the NSShadowAttributeName attribute of the attributed string to set the shadow.

  • Due to compatibility concerns, the NSBaselineOffsetAttributeName attribute is no longer supported in iOS 6.

  • The NSTextAlignmentNatural value is unsupported and will throw an exception when used with the textAlignment property of UILabel or supplied as the alignment parameter to the drawInRect:withFont:lineBreakMode:alignment: method of NSString.

  • The setContentStretch: method of UIView has been deprecated in this beta release. To achieve the same effect, use the resizableImageWithCapInsets: method of UIImage and display the image with a UIImageView.

  • The resizableImageWithCapInsets: method of UIImage effectively resizes images by tiling. As a performance optimization, it uses stretching rather than tiling when the user would not be able to tell the difference, such as when a single column or row is being stretched. But in certain circumstances, the user might want to actually stretch some region of an image. In iOS 6, the resizableImageWithCapInsets:resizingMode: method allows the caller to specify a tiling or stretching resizing mode.

  • The UICollectionViewLayout class has changed:

    • The class now supports the customization of the animations created during rotation. The names of methods for customizing insert and delete animations have also changed, so the same hooks can be used for rotations as well as for insertions and deletions.

    • The class has changed some method names. Specifically, decoration views are no longer referred to by “reuse identifier” but rather by “element kind.” Apps that are using decoration views will need to modify their code and rebuild to accommodate this.

  • The bottom edge of a UILabel view is now different from its baseline.

    Previously, auto layout was interpreting the bottom of a UILabel to be the same as its baseline. While convenient in many cases, it caused problems if you wanted to place the top edge of one label against the bottom edge of another. In such a scenario, the bottom label would overlap the top one, and descenders from the top label could crash into ascenders from the bottom label. Now, auto layout interprets UILayoutAttributeBottom as the bottom of the text box (presuming the label is not bigger than its intrinsic content size) and UILayoutAttributeBaseline as the baseline of the text. If you have already created code for laying out labels according to the bottom or center point, your text will move around a little and you will need to adjust your constraints.

  • Apps with table views in their nib or storyboard files, and that were built using previous versions of iOS 6 beta, will require a clean build with beta 3 and newer.

  • Here are some notes regarding auto layout support for UIScrollView:

    • In general, auto layout considers the top, left, bottom, and right edges of a view to be the visible edges. That is, if you pin a view to the left edge of its superview, you’re really pinning it to the minimum x-value of the superview’s bounds. Changing the bounds origin of the superview does not change the position of the view.

    • The UIScrollView class scrolls its content by changing the origin of its bounds. To make this work with auto layout, the meaning of the top, left, bottom, and right edges within a scroll view now mean the edges of its content view.

    • The constraints on the subviews of the scroll view must result in a size to fill, which is then interpreted as the content size of the scroll view. (This should not be confused with the intrinsicContentSize method used for auto layout.) To size the scroll view’s frame with auto layout, constraints must either be explicit regarding the width and height of the scroll view, or the edges of the scroll view must be tied to views outside of its subtree.

    • Note that you can make a subview of the scroll view appear to float (not scroll) over the other scrolling content by creating constraints between the view and a view outside the scroll view’s subtree, such as the scroll view’s superview.

    • Here are some examples of how to configure the scroll view:

      • Mixed approach:

        1. Position and size your scroll view with constraints external to the scroll view—that is, the translatesAutoresizingMaskIntoConstraints property is set to NO.

        2. Create a plain UIView content view for your scroll view that will be the size that you want your content to have. Make it a subview of the scroll view but let it continue to translate the autoresizing mask into constraints:

          UIView *contentView = [[UIView alloc]
              initWithFrame:CGRectMake(0,0,contentWidth,contentHeight)];
          [scrollView addSubview:contentView];
          // DON'T change contentView's translatesAutoresizingMaskIntoConstraints,
          // which defaults to YES;
        3. Set the content size of the scroll view to match the size of the content view:

          [scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];
        4. Create the views you want to put inside the content view and configure their constraints so as to position them within the content view.

          Alternatively, you can create a view subtree to go in the scroll view, set up your constraints, and call the systemLayoutSizeFittingSize: method (with the UILayoutFittingCompressedSize option) to find the size you want to use for your content view and the contentSize property of the scroll view.

      • Pure auto layout approach:

        1. In this case, translatesAutoresizingMaskIntoConstraints must be set to NO on all views involved.

        2. Position and size your scroll view with constraints external to the scroll view.

        3. Use constraints to lay out the subviews within the scroll view, being sure that the constraints tie to all four edges of the scroll view and do not rely on the scroll view to get their size.

          A simple example would be a large image view, which has an intrinsic content size derived from the size of the image. In the viewDidLoad method of your view controller, you would include code like the following:

          UIScrollView *scrollView = [[UIScrollView alloc] init];
          UIImageView *imageView = [[UIImageView alloc] init];
          [imageView setImage:[UIImage imageNamed:"MyReallyBigImage"]];
          [self.view addSubview:scrollView];
          [scrollView addSubview:imageView];
           
          scrollView.translatesAutoresizingMaskIntoConstraints = NO;
          imageView.translatesAutoresizingMaskIntoConstraints = NO;
           
          NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(scrollView,imageView);
          [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
          [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
          [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
          [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];

          This would give you a scroll view that resized as the view controller’s view resized (such as on device rotation), and the image view would be a scrolling subview. You don't have to set the content size of the scroll view.

  • Given this view hierarchy:

    ContainerView
        |     OddHeightView
        |        |    EvenHeightView
        |    OtherFixedHeightView

    and these constraints:

    EvenHeightView.centerY == OddHeightView.centerY
    EvenHeightView.bottom (or baseline) ==  OtherFixedHeightView.bottom (or baseline)
    OtherFixedHeightView.top == ContainerView.top + <space>

    in iOS 6 beta 4, on non-Retina display devices, the bottoms (or baselines) of the EvenHeightView and the OtherFixedHeightView were off by one pixel and the developer could do nothing about it. This issue is now fixed.

    • Before the changes, the layout engine did not integralize the position variables for the views, and these constraints were always satisfiable:

      ContainerView
          |    OddWidthView
          |    EvenWidthView
       
      OddWidthView.centerX == ContainerView.centerX
      EvenWidthView.centerX == ContainerView.centerX
      EvenWidthView.centerX == OddWidthView.centerX
       

      Now, the layout engine is integralizing the position variables (x and y) as well as dimension variables (width and height). This means that it will try to satisfy the three constraints with an integer solution, which might not be possible, and thus will log that these constraints are unsatisfiable. In this case, and in all analogous cases, developers just need to remove the redundant constraint (or constraints). In the example above, removing any one of the three constraints will resolve the issue.

  • In iOS 6 beta 4, there is a known bug that when you have a constraint with one item that is a scroll view, the other item is a descendant of that scroll view, and you add the constraint to an ancestor of that scroll view, then the constraint might stop working properly. The workaround is to add such constraints only to the scroll view itself, not to any old ancestor.

Safari and WebKit

  • WebKit on iOS now supports the requestAnimationFrame and cancelAnimationFrame methods in JavaScript, as described here: http://www.w3.org/TR/animation-timing/.

    • Note that because the specification is still at the Working Draft state, these methods have the webkit prefix, so they are window.webkitRequestAnimationFrame and window.webkitCancelAnimationFrame.

  • The default app cache quota has increased from 5 MB to 25 MB.

  • The JPEG subsampling threshold has increased from 2 MP (megapixels) to 5 MP on all supported hardware except iPhone 3GS and iPod touch (4th generation).

  • Support has been added for <input type="file"> tags in web forms. Users can upload existing photos and videos from their photo library or take a picture or video using the camera. Previously, this form control was always disabled.

  • With Safari 6.0 on OS X, developers can now use the Web Inspector (web development tool) with attached iOS devices and iOS Simulator. Developers can use the Web Inspector to debug Safari and the UIWebView class in their own apps built and run from Xcode. This replaces the Debug Console banner in Safari.

  • In iOS 6 and later, web data (SQL Web Storage and LocalStorage) from a UIWebView object can be stored in a directory that will be backed up. To enable backing up this data, set the WebKitStoreWebDataForBackup key to YES in your app’s user defaults. This should be done only if your app relies on web content data that cannot be reloaded. If your UIWebView object opens links to arbitrary web content, this key should be set to NO. Toggling the value of this key will not preserve existing web view data.

  • In iOS 6 and later, Safari no longer registers for the common feed: RSS/ATOM scheme. Apps that can view those types of feeds are encouraged to register for that URL scheme.

  • WebKit no longer always creates hardware-accelerated layers for elements with the -webkit-transform: preserve-3d option. Authors should stop using this option as a way to get hardware acceleration.

  • Experimental CSS3 Flexbox support will be disabled. Please switch from using -webkit-flexbox and -webkit-inline-flexbox to -webkit-box and -webkit-inline-box.

  • As of iOS 6, embedded YouTube URLs in the form of https://www.youtube.com/watch?v=oHg5SJYRHA0 will no longer work. These URLs are for viewing the video on the YouTube site, not for embedding in web pages. Instead, the format that should be used is described here: https://developers.google.com/youtube/player_parameters.

  • In iOS 6, the keyboardDisplayRequiresUserAction property was added to the UIWebView class. The property defaults to YES, which means that calling focus() on a form element will not bring up the keyboard. By changing the property to NO, a JavaScript call to focus() on a form element will focus the element and bring up the keyboard automatically.

  • As of iOS 6, calling focus() on a form element in a web app will focus the element.


27일 아침 7시 반쯤 beta4 업데이트 안내 메일이 왔습니다.

안그래도 아이튠즈까지 베타 깔면서 업뎃하기도 귀찮고 그랬었는데 혹시나 했더니 역시 이번에 무선 업데이트를 지원해주고있었습니다.


일반 > 소프트웨어 업데이트

skyand96.com

skyand96.com






설치완료~


[iOS5 베타4 릴리즈노트]

iOS SDK Release Notes for iOS 5.0 beta 4

Important: This is a preliminary document for an API or technology in development. Although this document has been reviewed for technical accuracy, it is not final. Apple is supplying this information to help you plan for the adoption of the technologies and programming interfaces described herein. This information is subject to change, and software implemented according to this document should be tested with final operating system software and final documentation. Newer versions of this document may be provided with future seeds of the API or technology.
Contents:

Introduction
Bug Reporting
Notes and Known Issues

Introduction

iOS SDK 5.0 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 5.0. You can also test your applications using the included iOS Simulator, which supports iOS 5.0. There are two Xcode iOS SDK 5.0 images, one for installing on a Macintosh computer running Mac OS X 10.6.7 (Snow Leopard) or later, the other for installing on a Macintosh computer running Mac OS X 10.7 (Lion).

This version of iOS is intended only for installation on devices registered with Apple's developer program. Attempting to install this version of iOS in an unauthorized manner could put your device in an unusable state.

For more information and additional support resources, visit:

http://developer.apple.com/programs/ios/

Bug Reporting

Please report any bugs not mentioned in the “Notes and Known Issues” section using the Apple Bug Reporter on the Apple Developer website (http://developer.apple.com/bugreporter/). Additionally, you may discuss these issues and iOS SDK 5.0 in the Apple Developer Forums: http://devforums.apple.com. You can also access more information about iCloud Beta for Developers at: http://developer.apple.com/icloud

Notes and Known Issues

The following issues relate to using the 5.0 SDK to develop code.

Accessories
NEW: In this beta, Nike + Gym will be unable to save workout data and upload it to Nike. And iPod accessories that do radio tagging will be unable to save and sync tags.
Accounts
When creating an iCloud account you can use any Apple ID provided as long as 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.
It is recommended that you disable Bookmarks on multiple accounts. If they are enabled, the results might be undefined.
FIXED: In this beta the option of “Choosing a security question” is not working during an iCloud account setup.
AirPlay
Starting in iOS 5, video content in applications and websites are AirPlay-enabled by default.
iOS 5 supports AirPlay of video via AV Foundation.
Switching into AirPay Video while using mirroring will leave the screen black but the video is still playing.
Apple TV
Apple TV Software beta enables users to mirror the contents of an iPad 2 to an Apple TV (2nd generation) using AirPlay. This beta software also enables Photo Stream on Apple 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 install Apple TV Software beta on your device, you must first register your device UDID in the iOS Developer Program Portal.
There is no new build for AppleTV for beta 4. Please continue using the build provided with beta 3.
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.
Binary Compatibility
NEW: In this beta, the BBC iPlayer website and apps will be unable to play content on the device.
Calendar
All MobileMe calendars were duplicated after turning calendar syncing off and back on.
FIXED: Restoring from a Seed 1 backup or earlier will cause MobileMe/iCloud calendars not to sync. Subscribed calendars will show up in Calendars but none of your event calendars will appear in MobileCal. To workaround the problem please remove and re-add the account.
If SnowLeopard isn't syncing your calendars on iOS device and you created a calendar or reminders list using a previous iOS 5.0 seed, change the name of that calendar or list on the iOS device and then let it sync.
In this beta Birthday calendar is temporarily disabled for Web apps and Windows and will be available in a future release.
Contacts
NEW:In MobileMe local contacts are deleted instead of be being merged.
In this beta Import/Export vCard is disabled from Action menu and will be available in future release.
GameKit
Match data for turn based matches is currently limited to 4 KB of data.
When both Wifi and 3G are disabled (i.e. in Airplane mode) sometimes GameKit can cause the connection in a local Bluetooth match to fail.
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.
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. It is strongly advised you upgrade to this version of the iOS 5 beta in order to continue backing up your devices and preserve previous backups.
iCloud Storage
During the iOS 5 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.
In this beta, the setSortDescriptors: method of NSMetadataQuery is not supported.
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.
There are issues using the Cloud Storage document API in conjunction with protected data which can lead to data corruption.
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
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 very quickly, so you should remove the profile after you have reproduced the problem and pulled the logs for the bug report.
NEW: File names in iCloud Storage are case sensitive.
iMessage
NEW: iMessage beta 1 will be unable to communicate with iMessage users on beta 2 or later.
iTunes
The version of iTunes that comes with beta 4 cannot sync devices that have the beta 2 software installed. To avoid this problem, do the following:
Sync any devices that have beta 3 installed to the version of iTunes that came with beta 4.
Upgrade iTunes to the version that comes with beta 4.
Connect the device and install the beta 4 software. (Understand that you might see a failure to sync error when you first connect the device.)
After installing the beta 4 software, restore from your the backup you made in step 1.
Videos purchased from the iTunes Store do not play on a 2nd generation AppleTV over AirPlay with iTunes 10.5.
Location
NEW:The startMonitoringSignificantLocationChanges method of CLLocationManager does not cause applications to be resumed or launched in the background for significant location change updates. However, if a backup from a previous software version (where an application was monitoring significant location changes) is restored to the device, significant location change monitoring will continue to cause that application to be resumed or launched in the background.
Mail
NEW:Forwarding a message with attachments included does not attach the file and the message compose screen does not change from "Loading...."
Music Library
NEW:Some songs are missing their album artwork after changing the device library via syncing.
OpenGL
NEW: In iOS 5.0 beta 4, several OpenGL extensions have been moved from the APPLE namespace to the EXT namespace, causing some API to be renamed. The altered extensions are EXT_color_buffer_half_float, EXT_occlusion_query_boolean, EXT_separate_shader_objects, EXT_shadow_samplers, EXT_texture_rg, EXT_debug_label, and EXT_debug_marker.
OTA Software Update
NEW: If you are doing a OTA software update from beta 3 to beta 4, you will need to re-sync your photos with iTunes."
Personal HotSpot
NEW:In this beta iPhone 4 device cannot join personal hotspot even if it is on due to a non functional WiFi tethering on these devices.
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.
Settings
FIXED: In this beta FaceTime icon is missing in Settings on the iPhones.
Simulator
NEW: Location services are not functional in iOS 4.3 simulator running on Mac OS 10.7 with Xcode 4.2.
Springboard
Push and local notifications for apps appear in the new Notification Center in iOS 5. 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.
NEW: iOS 5.0 terminates VoIP applications that are resumed in the background for incoming network traffic with extreme frequency. Developers are encouraged to make sure all incoming data is read from VoIP sockets to avoid this condition.
Twitter
NEW: When tweeting your location from Safari and exiting before the location can be established, the location arrow will stay in the status bar. The arrow can be removed by killing Safari from the task switcher.
UI Automation
NEW: Instruments overwrites the loaded automation script, even if another program is editing it.
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.
FIXED:Instruments overwrites the loaded automation script, even if another program is editing it.
Starting in iOS 5 beta 2, you can now trigger the execution of an 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>
When using the cli instruments for UI Automation you can now target the default Automation Template and pass the script and results path into the tool as environment variable options. For example:
instruments -w <device id> -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <application> -e UIASCRIPT <script> -e UIARESULTSPATH <results path>
UIKit
Starting in iOS 5 beta 3, the exclusiveTouch property of UIControl has returned to its original default value of NO.
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:
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.
Touch events are not getting forwarded to the view in the cameraOverlayView property of UIImagePickerController.
FIXED: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).
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
In iOS 5, 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, which allows single-finger scrolling without momentum.
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 type=number> form field, which includes removing leading zeros and number formatting.
Touch events are now supported on input fields.
window.onerror is now supported.
There is a new user agent that does not have locale information in the User Agent string.
WiFi Syncing
In iOS 5 beta 4, wireless syncing is now available on Windows as well as the Mac (requires 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).
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 some cases, your device may fail to sync contacts, calendars and account settings, or back up to iTunes. If this happens, reboot your device and re-sync.
NEW:In some cases, syncing photos may result in only thumbnails on your device. If this happens, unsync Photos then re-sync again.
Xcode
In this beta, device restores using Xcode are disabled. Please use iTunes only to back up and restore your device.
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.
In iOS 5 beta 4, 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.
iOS 5.0 SDK supports both iOS 4.3 and iOS 5.0 simulators.

+ Recent posts

티스토리 툴바