WooKoo Blog

물과 같이

개발/개발

[iOS] - iOS 에서 딥링크가 뭘까? (Firebase 기반으로)

WooKoo 2022. 7. 25. 19:39

딥링크란 무엇일까요 ???

어떤 주소를 입력하면 해당 주소에따라 앱이 실행되거나 이동시키는 기능을 수행하는 것을 이야기합니다.

앱이 설치가 되어있으면 해당 화면으로 이동시키는데

 

만약 앱이 설치가 안되어있다면 앱 스토어로 이동 후 설치 후에 특정 화면으로 바로 이동시키도록 하는 것을

지연된 딥링크라고도 부르기도합니다.

 

딥링크는 방식에 따라 크게 3가지로 분류합니다.

1. URI Scheme 방식 : 앱에 URI Scheme를 등록하여 분석하여 특정 화면으로 이동

2. App Link : Android 도메인 주소를 이용한 딥링크

3. Universal Link : iOS 도메인 주소를 이용한 딥링크

 

오늘은 iOS Universal Link에 대해서 알아보도록 하겠습니다.

시작 전 URI Scheme 방식의 한계때문에 유니버셜 링크 방식을 사용하는데 어떤점이 문제일까요?

 

바로 동일한 URI Scheme을 사용하는 앱들이 있다면 어떤 앱을 실행시켜야하는지 모르는 문제가 있습니다.

또한 앱이 설치되지않았음에도 어떤 앱의 스토어로 이동시켜야하는지도 알 수 없게 되는 것이죠

 

유니버셜 링크는 특정 도메인을 이용하여 (DNS에 등록) 고유의 링크를 가지고 특정 앱으로 이동시킬 수 있습니다.

Ex ) www.testapp.page.link 이런식으로 말이죠

 

iOS는 해당 링크를 Signing & Capabilities 에서 Associated Domains 에서 설정 할 수 있습니다.

설정 시에는 반드시 applinks: 키워드를 함께 작성해주셔야합니다. (이것 때문에 시간 날림..)

 

이런 식으로 말이죠

 

파이어 베이스에서는 안드로이드 iOS 각각 쉽게 딥링크를 이용 할 수 있도록 제공합니다.

 

파이어 베이스 콘솔로 이동하셔서 다이나믹 링크를 설정하는 콘솔에 입장하고

 

URL 프리픽스를 만듭니다.

 

여기서 만들 때 가지고 있는 특정 도메인 서버가 있다면 (커스텀 도메인)

없으시다면 구글에서 제공하는 도메인을 이용하여 만들어야합니다. ex ) testapp.page.link

 

구글 것을 이용 시 page.link를 꼭 이용해주셔야합니다.

 

다 만드셨다면 동적 링크 설정을 해주셔야하는데요

 

컨트롤 할 수 있는 매개변수가 이미 지정되어있어서 문서를 보고 해당 URL에 맞게 바꿔주셔야합니다.

 

https://firebase.google.com/docs/dynamic-links/create-manually?authuser=0 

 

동적 링크 URL 직접 만들기  |  Firebase Documentation

의견 보내기 동적 링크 URL 직접 만들기 다음 형식으로 URL을 직접 작성하여 동적 링크를 만들 수 있습니다. https://your_subdomain.page.link/?link=your_deep_link&apn=package_name[&amv=minimum_version][&afl=fallback_link]

firebase.google.com

 

https://example.page.link/?link=https://www.example.com/someresource&apn=com.example.android&amv=3&ibi=com.example.ios&isi=1234567&ius=exampleapp

 

위 문서에 나와있는 파라미터를 잘 보고 만드신다면 iOS 안드로이도 모두 이용이 가능합니다.

 

추가로 커스텀 도메인을 사용하시는분들은 info.plist 파일에 

App Transport Security Settings에 

FirebaseDynamicLinksCustomDomains 필드를 추가하시고

값에 아까 만든 도메인 있죠? https://testapp.domain.com 

을 입력해주시면 됩니다.

그러고 한번 실행해보시면 앱도 열리고 미설치 시 스토어로도 잘 이동됩니다.

(시뮬레이터에서 미설치 시에는 앱스토어로 이동되지 않습니다!)

 

이후에는 특정 파라미터에 따라 화면을 이동시켜주면 되겠죠?

 

 

아 참!! 동적링크 적는 곳에는 앱의 bundle ID를 입력해주시면됩니다!

com.myapp  이렇게 된 bundle identifier 말이에요! General 탭에 보시면 됩니다.