EEYatHo 앱 깎는 이야기

Swift ) Deeplink, UniversalLink - EEYatHo iOS 본문

iOS, Swift/DeepLink

Swift ) Deeplink, UniversalLink - EEYatHo iOS

EEYatHo 2024. 2. 8. 09:45
반응형

DeepLink


  • 앱이 실행되거나 앱 내 특정 페이지에 도달할 수 있도록 하는 링크
  • 두가지 방식이 존재. ( URL Scheme, Universal Link )

 

 

 

URL Scheme


  • 가장 간단하고 오래된 딥링크 방식.
  • 다른 앱과 중복 가능. ( 안드는 어떤 앱을 실행할지 고르라하고, iOS는 마지막에 설치한 앱이 열림 )
  • 링크에 앱 스킴이 노출되기 때문에, 다른 앱이 작정하고 따라할 수 있다. ( 보안에 취약하다 )
  • 타 앱에서 우리앱 오픈 시도 및 미설치시, 앱스토어 이동 등, 충분한 조치를 취할 수 없다.
  • Info.plist - URL Types 에 어떤 스킴을 사용할지 등록 가능.

 

 

 

Universer Link


  • URL Scheme 의 두가지 단점의 보완.
    1. 중복이 일어나 다른 앱을 실행시킬 수 있다.
    2. 앱이 설치되어 있지 않을 때 충분한 조치를 취할 수 없다.
  • 웹 주소를 이용한 딥링크 방식. ( 웹 주소는 유일 → 중복 걱정 x )
  • 작동 원리
    • 웹 : 웹 서버에, JSON 형태로 AppID와 딥링크 경로 정보가 들어있는 apple-app-site-association 파일을 업로드. (참고)
    • 앱 : 어떤 도메인으로 실행될 것인지 설정. ( Capability - Associated Domains ) (참고)
    • 해당 앱이 설치될 때, iOS는 Info.plist를 체크, entitlements에서 Associated Domains Value를 찾고, 해당 HTTPS WebServer 에서 apple-app-site-association 파일을 찾은 뒤, 내부적으로 applink를 만듦.
      ( iOS 14부터는 애플의 content delivery network (CDN) 에 업로드하고 해당 파일을 참조함.) (참고
    • 이후, 해당 웹 주소의 open커맨드를 받은 iOS는, 앱이 있다면 앱을 열고, 없으면 사파리를 엶.
    • 사파리가 열렸다면, 개발자는 여기서 웹 서비스를 제공할지, 앱스토어로 보낼지 구현.
  • 당연하지만, QR Code, NFC 태그 등으로 활용 가능.
  • 안드로이드는 동일한 서비스로 이름만 다른 AppLink 가 있음.
  • 웹서버에는 여러 앱을 담을 수 있음 → 하나의 웹 서버로 여러 앱의 유니버셜 링크 구현 가능.
  • 주의사항
    • 소유한 도메인이 필요
    • iOS 9 이상에서 동작
    • apple-app-site-association ( AASA ) 파일 크기는 128KB 보다 작아야함
    • AASA 파일 확장자 없음. ( .json 아님 )
    • .well-known 디렉터리 또는 root 디렉터리에 추가
    • https 이어야함
    • redirection이 없어야함 
  •  캐싱관련
    • AASA 파일을 변경해도 바로바로 반영되지 않음.
    • 앱을 설치하거나 업데이트할 때, 가져와놓고 쓰기 때문
    • 애플은 AASA 파일을 24시간 마다 CDN에 AASA파일을 업데이트하고, 디바이스는 대략 일주일에 한번씩 CDN을 체크. (참고)

 

 

 

Firebase(Dynamic Link), AppsFlyer(One Link), AriBridge, DFinery(All Link), Adjust 등의 각종 서비스들..


  • iOS의 유니버셜 링크, AOS의 앱링크 한번에 지원.( AppStore/PlayStore 로 잘 구분해서 랜딩 )
  • 앱 미설치여서 앱스토어에서 설치 및 첫 실행했을 때, 소실된 딥링크를 앱에 쏴주는 Deferred DeepLink 서비스 제공.
    • 앱 설치 후 본래 의도했던 페이지로 랜딩할 수 있다는 장점.
    • 유저도 자연스럽게 탐색을 이어나가는 것이 가능하다는 장점.
  • 각종 지표도 확인 가능
  • 이 서비스들에서 꼭 유니버셜 링크를 사용하는 이유?
    • 수많은 앱들을 관리하는 과정에서, URL Scheme 방식으로는 중복이 발생할 수 있기 때문.
Comments