iOS9 출시에 따른 개발자 대응 방안

Apple Watch를 제외한 Apple에서 출시되는  모바일 디바이스에서 사용되는 운영체제인 iOS의 차기버전으로 iOS9이 출시될 예정이다. 언제나 그렇듯 개발자들은 자신의 프로그램이 실행되는 OS의 새로운 OS 버전에서 변경된 내용들에 대한 발빠른 대응이 반드시 필요하다. 이번 포스트에서는 iOS9 출시에 따른 iOS 앱 개발자들이 확인해야 할 사항들과 그에 따른 대응 방안에 대해서 알아본다.

ATS(App Transport Security)
iOS9 이상의 버전에는 ATS 기술이 기본적으로 적용된다. ATS는 앱과 웹 서비스 간 연결보안을 강화하는 기술로 이 기술이 적용되면 기존에 iOS 앱에서 사용하던 암호화되지 않은 HTTP 통신은 OS 내부에서 강제적으로 차단된다. 따라서, 여러분이 작성해 놓은 iOS 앱에 포함된 HTTP 통신은 모두 무용지물이 되어 버릴 것이다. 실제로 필자가 iOS9 beta4에서 확인해 본 결과 HTTP 통신을 사용하여 plain text 데이터를 요청하는 시점에 다음과 같은 메시지가 로그 창에 출력되며, 통신이 되지 않는 상황이 재현되었다.

이미지 001

ATS 옵션 설정
iOS9에 기본적으로 탑재되는 ATS 기술을 사용하기 위해서는 ATS 요구사항을 충족시키는 방법으로 통신하는 앱을 작성해야만 한다. 하지만, 다행히도 Apple에서는 ATS를 임의로 사용하지 않을 수 있도록 처리하는 방법을 제공하고 있다.

다음과 같은 방법으로 plist에 ATS 관련 정보를 추가하면 기존에 앱에서 사용하던 HTTP 통신을 그대로 사용할 수 있다.

이미지 002

Bitcode
iOS9 에서 LLVM Compiler에서 Bitcode를 생성을 지원한다. Bitcode를 사용하는 경우 AppStore에서 필요한 경우에 해당 코드를 사용하여 다시 최적화 된 바이너리를 생성하여 End user에게 전송해 주는 역할을 담당한다.

이미지 003

[Bitcode 적용 프로세스]

즉, 위의 그림에서와 같이 Xcode에서 Bitcode를 포함한 iOS 앱을 AppStore로 전송하면, AppStore 내에서 사용자의 디바이스에 따라 최적화된 바이너리를 다시 빌드하는 과정을 거친다. 따라서, Bitcode가 적용된 앱을 앱스토어로 전송한 경우 개발자는 추후 새롭게 출시되는 디바이스의 특성에 따라 다시 빌드하는 수고를 덜어줄 것으로 예상된다.

Xcode 7.0 beta 버전에서는 기본적으로 Bitcode가 적용된다. 따라서, 추후 출시될 Xcode의 정식 버전인 7.x 버전에서도 동일하게 적용될 것으로 예상된다. Bitcode를 적용하지 않고자 하는 경우에는 다음과 같은 방법으로 변경이 가능하다.

이미지 5

참고 사이트
App Transport Security Technote
https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html#//apple_ref/doc/uid/TP40016240-CH1-SW3

WWDC 2015 Platforms State of the Union
https://developer.apple.com/videos/wwdc/2015/?id=102

 

Posted by 정희재 @ 카테노이드 연구소

 

 

 

 

 

 

 

 

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.