본문 바로가기

Introduction

iOS SDK 9.0 provides support for developing iOS apps. It is packaged with a 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 9. You can also test your apps using the included Simulator, which supports iOS 9. iOS SDK 9.0 requires a Mac computer running OS X v10.10.3 (Yosemite) or later.

This version of iOS is intended for installation only on devices registered with the Apple 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

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 iOS SDK 9.0 in the Apple Developer Forums. To get more information about iCloud for Developers, go to http://developer.apple.com/icloud.

Notes and Known Issues

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

App Store

Note

iOS 9 enforces the UILaunchImages requirement; apps can no longer declare the same launch image to support different interface orientations.

Known Issue

Users might be prompted twice for credentials on the first In-App Purchase.

Apple ID

Notes

  • Some users will be offered to turn on two-factor authentication on their Apple ID. For more information about two-factor authentication see developer.apple.com/support/two-factor-authentication.

  • If you turn on two-factor authentication on your Apple ID, iTunes purchases on Mac and Windows and store purchases on Apple TV will require you to append a six-digit verification code to the end of your password the first time you use that device. The six-digit code will display automatically on your iOS 9 or OS X El Capitan devices, or can be sent to your trusted phone number via a text message or phone call.

Apple Pay

Note

The format of the postal code that is returned prior to full authorization has changed from iOS 8. In some cases, it may be truncated from what was previously being returned.

AVFoundation

Notes

  • The canUseNetworkResourcesForLiveStreamingWhilePaused property has been added to AVPlayerItem. The default value is NO for apps linked on or after iOS 9.0 or OS X 10.11, but YES for apps that were linked earlier.

    To minimize power usage, set this property to NO if you do not need playback state to stay up to date while paused.

  • AVQueuePlayer now supports a mixture of file-based media and HTTP Live Streaming media in its queue. Prior to this, you had to ensure that all items in the queue were of the same type.

  • For apps linked against iOS 9 or later, the media interruption behavior for AV(Queue)Player has changed.

    Before iOS 9, apps could interrupt other media-playing clients by associating or adding AVPlayerItem to AVPlayer or by modifying the time or date of the current AVPlayerItem (using the seekToTime: or seekToDate: methods). In iOS 9, these operations interrupt only when AVPlayer object’s playback rate is changed to a non-zero value through the rate property or play method.

  • Picture in Picture playback might stop and the Picture in Picture button might disappear when using AVPlayerViewController for video playback and replacing the underlying AVPlayer object’s current item using replaceCurrentItemWithPlayerItem:.

  • The cancelPictureInPicture method is deprecated.

Bluetooth

Known Issue

Pairing Miura MFI accessory to an iOS 9 device will not work.

Workaround: Do not remove pairing after updating to iOS 9.

CBCentralManager

Note

The retrievePeripherals: and retrieveConnectedPeripherals methods were deprecated in iOS 7.0 and removed in iOS 9.0. Apps that use these methods will crash on launch or upon pairing an accessory.

Foundation

Notes

  • There is new Foundation API that can be used to detect if the device is in Low Power Mode. See the updated Energy Efficiency Guide for iOS Apps for details.

  • Horizontal location constraints should consistently reference either left/right or leading/trailing attributes. For apps linked against the iOS 9 SDK, NSLayoutConstraint will throw an exception if you attempt to create a constraint between a leading/trailing attribute and a left/right attribute.

iCloud Drive

Note

The fetchAllChanges property on CKFetchRecordChangesOperation has been deprecated, and will be removed in iOS 9.

Keyboards

Note

The setting to use a third-party keyboard as the default keyboard for text input is not always respected.

Keychain

Note

iCloud Keychain will not sync passwords and credit cards with betas of iOS 9 and OS X El Capitan.

Music

Note

When users plug in headphones or connect to Bluetooth or CarPlay in their car, their favorite music app appears on the lock screen or the car display.

For your app to be eligible for this, it must publish to Now Playing upon launch and consistently maintain a Now Playing state. A common practice upon launch is to continue playing the track from when the app was last exited.

Known Issue

Some tracks you have previously purchased won’t play.

Workaround: Sign out of the Store and then sign back in.

Networking

Notes

  • When negotiating a TLS/SSL connection with Diffie-Hellman key exchange, iOS 9 requires a 1024-bit group or larger. These connections include:

    • Secure Web (HTTPS)

    • Enterprise Wi-Fi (802.1X)

    • Secure e-mail (IMAP, POP, SMTP)

    • Printing servers (IPPS)

  • DHE_RSA cipher suites are now disabled by defaults in Secure Transport for TLS clients. This may cause failure to connect to TLS servers that only support DHE_RSA cipher suites. Applications that explicitly enable cipher suites using SSLSetEnabledCiphers are not affected and will still use DHE_RSA cipher suites if explicitly enabled.

    Safari may see a “Safari can’t establish a secure connection to the server” error page. Safari and other clients of CFNetwork API (NSURLSession, NSURLConnection, CFHTTPStream, CFSocketStream and Cocoa equivalent) will show “CFNetwork SSLHandshake failed” error in Console.

On Demand Resources

Known Issues

  • Initial and pre-fetch On Demand Resource asset packs may not downloading automatically at install and app-launch time.

    Workaround: Check for the existence of this content as part of their standard code path and manually request it be downloaded via the NSBundle APIs if it is not present. Alternatively, bundle the initial content in your application bundle.

  • New or changed On Demand Resource assets packs that are added or changed as part of an app update may be inaccessible to the application.

    Workaround: Include the asset packs directly the application bundle.

ReplayKit

Known Issue

Playing a video while ReplayKit recording is ON stops the ongoing recording session and the video fails to play.

Restore

Known Issue

If you’ve set a region that doesn’t match your language, restores from iCloud Backup might not progress.

Workaround: During restore, change your region to match your language. You can change it back after the restore is over.

Safari

Notes

  • When Done is tapped in a SFSafariViewController, it is automatically dismissed. You no longer need to dismiss it in the delegate method safariViewControllerDidFinish:.

  • “Find on Page” is now available both from the Share sheet as well as in the Completions List.

  • Request Desktop Site has moved; it’s now in the Share sheet instead of Favorites.

  • Web Browser–to–Native App Handoff does not work with your app if the apple-app-site-association file isn’t correctly formatted and signed. For more information, see Handoff Programming Guide and Shared Web Credentials Reference.

Secure Transport

Note

DHE_RSA cipher suites are now disabled by default in Secure Transport for TLS clients. This may cause failure to connect to TLS servers that only support DHE_RSA cipher suites. Applications that explicitly enable cipher suites using SSLSetEnabledCiphers are not affected and will still use DHE_RSA cipher suites if explicitly enabled.

UIKit

Notes

  • If initialized with a nil nibName value, UIViewController.nibName has always looked for a nib with a similar name as the view controller’s class, and defaulted to that value if loadView is not overridden.

    Prior to iOS 9, subclasses of UIViewController that were written in Swift would require that their corresponding nib file name include the module prefix.

    To improve flexibility in the event of refactoring, you can omit the module name from the nib filename in code that runs in iOS 9. UIViewController.nibName still prefers a name that contains the module prefix, but falls back to an unqualified name if a nib with the fully-qualified name is not found.

  • In iOS 9, when layoutIfNeeded is sent to a view and all of the following conditions are satisfied (which is not common), we apply fitting-size constraints (width/height = 0 at UILayoutPriorityFittingSizeLevel) instead of required size constraints (width/height required to match current size):

    1. The receiver is not yet in the subtree of a view that hosts a layout engine, such as window, view controller view (unless you have set translatesAutoresizingMaskIntoConstraints to NO on that view—or created constraints that have one item in its subtree and one item outside it), table view cell content view, and so on.

    2. The final ancestor (that is, top-level view) of the receiver has translatesAutoresizingMaskIntoConstraints set to NO.

    3. The top-level view has a subview that is not a UIViewController-owned layout guide that also has translatesAutoresizingMaskIntoConstraints set to NO.

    Under condition 1, we create a temporary layout engine from the top-level view and add all the constraints from the subtree to it. The problem is that we need to add some constraints that make the size of the top-level view unambiguous in the layout engine. The old behavior (prior to iOS 9) was that we would add constraints to restrict the size of the top-level view to its current bounds for any situation under condition 1. This really doesn’t make sense when you add conditions 2 and 3 and can result in unsatisfiable-constraints logging and broken layout.

    So in iOS 9, for this special case only, we use fitting-size constraints instead.

    This means that if you are sending layoutIfNeeded to a view under these conditions in iOS 9, you must be sure that either you have sufficient constraints to establish a size for the top-level view (which usually, though not always, is the receiver) or you must add temporary size constraints to the top-level view of layout size you desire before sending layoutIfNeeded, and remove them afterward.

  • For apps linked on iOS 9 or later, UITextView will now always correctly constrict its NSTextContainer to the fit inside the view when scrolling is disabled. Overflowing lines that lie outside of an NSTextContainer, even partially, are not rendered.

    In previous iOS releases, the NSTextContainer sometimes was not constricted in size. This meant that logically overflowing lines were erroneously rendered. If you are seeing previously rendered lines at the end of your text view no longer rendered after linking your app against iOS 9, this behavior change is the likely cause. You can remedy this by making your UITextView larger, or perhaps by adjusting the bottom value of the text view's textContainerInset property.

  • There is a redesigned UI for printing that includes a print preview (presented from UIPrintInteractionController or UIActivityViewController). For apps that provide printing items or use only built-in UIPrintFormatter objects (such as UISimpleTextPrintFormatter, UIMarkupTextPrintFormatter, UIWebViewPrintFormatter, or the UIViewPrintFormatter of any system-provided view), nothing additional is needed for the print preview to display.

    Apps that subclass UIPrintPageRenderer or UIPrintFormatter to draw content for printing must be built with the iOS 9 SDK for the preview to display. The behavior of UIPrintPageRenderer has been updated to call drawPageAtIndex:inRect: multiple times with potentially different page sizes and margins. Various methods on UIPrintPageRenderer may be called from a non-main thread, but never from multiple threads concurrently.

  • UIPickerView and UIDatePicker are now resizable and adaptive—previously, these views would enforce a default size even if you attempted to resize them. These views also now default to a width of 320 points on all devices, instead of to the device width on iPhone.

    Interfaces that rely on the old enforcement of the default size will likely look wrong when compiled for iOS 9. Any problems encountered can be resolved by fully constraining or sizing picker views to the desired size instead of relying on implicit behavior.

 

iOS 9을 위한 iOS SDK 릴리즈 노트

 

관련 내용과 알려진 이슈

 

아래의 이슈들은 iOS SDK 9.0 사용과 관련이 있습니다.

 

App Store

 

알려진 이슈

유저들은 첫 번째 인앱 결제 시 자격을 얻기위해 두 번의 승인이 필요할 것입니다.

 

Apple ID

 

관련 내용

일부 유저들은 Apple ID에 2중 인증을 활성화 하도록 권고 받을 것입니다. 2중 인증을 위한 자세한 정보는 developer.apple.com/support/two-factor-authentication를 참조하십시오.

 

만약 Apple ID에 2중 인증을 활성화 한다면, Mac과 Windows에서의 iTunes 구매 그리고 Apple TV에서의 스토어 구매 시 그 디바이스를 처음 사용한다면 패스워드의 끝에 6자리 인증 코드를 요구할 것입니다. 6자리 코드는 iOS 9 또는 OS X El Capitan 디바이스에 자동으로 나타나거나, 신뢰된 휴대폰 번호로 텍스트 메시지나 전화를 통하여 보내질 수 있습니다.

 

Bluetooth

 

알려진 이슈

iOS 9 디바이스로의 Miura MFI 악세사리 페어링이 작동하지 않을 것입니다.

해결책: iOS 9로 업데이트 후 페어링을 제거하지 마십시오.

 

키보드

 

관련 내용

써드파티 키보드를 텍스트 입력 시 기본 키보드로 설정한 것이 항상 준수되지는 않을 것입니다.

 

키체인

 

관련 내용

iCloud 키체인은 베타 버전의 iOS 9과 OS X El Capitan에서 패스워드와 신용 카드들을 동기화 하지 않을 것입니다.

 

음악

 

관련 내용

사용자들이 헤드폰을 꼽거나 Bluetooth에 연결하거나 그들의 차에서 Carplay를 사용 시, 그들이 선호하는 음악 앱이 잠금 화면이나 자동차 디스플레이에 나타납니다.

 

여러분들의 앱이 이를 위해서는, 이들이 반드시 실행 후 ‘지금 재생중’을 공표하여야 하며 지속적으로 ‘지금 재생 중’ 상태를 유지하여야 합니다. 실행 후 일반적인 실행은 앱이 마지막으로 꺼졌을 때의 트랙을 계속 재생하는 것입니다.

 

알려진 이슈

여러분이 이전에 구입했던 일부 트랙이 재생되지 않을 것입니다.

해결책: 스토어에서 로그아웃 했다가 다시 로그인 하세요.

 

복원

 

알려진 이슈

만약 여러분이 여러분의 언어와 매치되지 않는 지역을 설정했다면, iCloud 백업이 진행되지 않을 것입니다.

해결책: 복원하는 동안, 여러분의 지역을 언어에 맞추세요. 복원이 끝나면 다시 원래대로 바꿀 수 있습니다.

 

Safari

 

관련 내용

“페이지에서 찾기”는 이제 공유 시트와 자동 완성 리스트 양쪽에서 이용가능 합니다.

데스크탑 버전 보기가 이동되었습니다. 이제 즐겨찾기 대신에 공유 시트에 있습니다.

 

 

반응형
저작자표시

'관심사' 카테고리의 다른 글

일본 아이폰6S 등의 액정파손 수리비용등에 대한 공지문  (0) 2015.09.13
애플이 사용하는 Power VR GPU의 약점  (0) 2015.09.13
더욱 얇아진 iPad mini 4 출시. iPad mini 3 단종.  (0) 2015.09.10
일본 학생들의 컴퓨터 실력은 선진국 중 최저 수준  (0) 2015.09.10
애플 신제품 총정리  (0) 2015.09.10