[iOS] 앱스토어 링크 모달창으로 띄우기

내가 만든 어플리케이션에서 다른 어플리케이션의 다운로드를 유도할 때 다음과 같은 코드를 사용하여 앱스토어 다운로드뷰로 이동을 하는 경우가 있습니다.

하지만 이경우 앱간 전환하는 모션을 보여주게 되며 유저에게 부담스러운 행위로 인식될 수 있습니다. iOS 6.0 이상부터 제공 되는 SKStoreProductViewController를 이용하여 앱스토어 링크로의 이동을 모달뷰로 띄울 수 있게 되었습니다. SKStoreProductViewController를 사용하기 위해서는 StoreKit.framework의 추가가 필요합니다.

헤더파일에는 StoreKit.h 파일을 임포트하고 SKStoreProductViewControllerDelegate 프로토콜을 추가해줍니다. 이 부분은 선택사항이 아니라 반드시 구현해야 하는 부분입니다.

iOS 6.0 미만 버전에서도 정상적으로 동작하도록 하기 위해 기존의 방식 또한 함께 구현하였습니다.  loadProductWithParameters:completionBlock: 이 호출되면 해당 앱스토어의 정보를 원격지에서 읽어옵니다. 이 과정이 끝나면 completionBlock으로 진입하게 되는데 result값에 정상적으로 로드가 되었는지 여부가 담겨오게 됩니다.

정상적으로 로드가 되었다면 위의 예시처럼 storeController를 띄워줍니다. 여기서 추가로 중요한 부분은 productViewControllerDidFinish: 의 구현입니다. 델리게이트를 통해 사용자가 앱스토어창을 닫을려고 시도할 때에 이 메소드에 진입하게 됩니다. 창을 닫아주시면 됩니다. 구현 화면의 예시는 다음과 같습니다.