티스토리 뷰

발생일: 2016.06.15

키워드: 유니버셜 링크, universal link, smart banner, 스마트 배너, apple-app-site-association

문제:
앱에 유니버셜 링크를 적용하려고 한다.


해결책:

유니버셜 링크는 일반 웹사이트 URL을 클릭했을 때, 웹사이트로 이동하는 대신 연결된 앱을 열어주는 기능이다.

애플의 API 페이지에 정리된 유니버셜 링크의 특징은 아래와 같다.

  - Unique: 커스텀 URL 스킴과 다르게 다른 앱에서 처리할 수 없다. 유니버셜 링크는 웹사이트로의 링크이기 때문이다.
  - Secure: 앱을 설치할 때, iOS는 웹사이트에 업로드된 파일을 확인해서 해당 앱의 유니버셜 링크를 허용한다. 웹사이트에는 개발자만 파일을 업로드할 수 있기 때문에 안전하다고 할 수 있다.
  - Flexible: 링크를 클릭했을 때, 앱이 설치되지 않았을 경우 자연스럽게 웹사이트로 이동하기 때문에 유연하다.
  - Simple: 동일한 URL로 앱과 웹사이트를 열 수 있기 때문에 심플하다고 할 수 있다.
  - Private: 다른 앱에서 호출할 때, 앱의 설치 여부와 관계 없이 URL만으로 커뮤니케이션할 수 있다.


유니버셜 링크는 iOS 9부터 제공하며,  WKWebview, UIWebView, Safari, openURL: 을 호출하게 되는 요청에서 동작한다.
하위 버전에서는 기존과 동일하게 사파리로 페이지를 연다.

API 페이지에 있는 것처럼, "간단하게" 아래 순서로 추가하면 된다.
- apple-app-site-association 파일에 앱 정보와 유니버셜 링크로 처리할 정보를 JSON 포맷으로 작성한다.
- apple-app-site-association 파일은 대상 웹사이트의 루트 또는 ./well-known 디렉토리 하위에 업로드한다. 웹사이트는 반드시 HTTPS이어야 한다.
- 앱에서 유니버셜 링크에 대한 처리를 추가한다.

자세한 내용은 애플의 유니버셜 링크 API를 참고하면 된다.


논의:

간단하게... 라고 했지만,..
실제론 링크가 제대로 동작하지 않는 경우도 있고, 이런 경우 원인도 확실치 않고 디버깅하기도 어려워 꽤 삽질을 하게 되는 것 같다.

서버 + 앱 + 웹 작업을 동시에 진행해야 하는데,
담당자가 나뉘어져 있는 경우엔 서로 각 도메인에 대한 이해가 부족해 적용하기 더딜 수도 있을 것 같다.

실제로 우리도 비슷한 문제를 겪었기 때문에, 이 참에 분야별로 작업해야 하는 부분을 나눠 정리해봤다.

iOS: 유니버셜 링크 적용하기


반응형
댓글
공지사항