딥링크란 무엇일까요 ???
어떤 주소를 입력하면 해당 주소에따라 앱이 실행되거나 이동시키는 기능을 수행하는 것을 이야기합니다.
앱이 설치가 되어있으면 해당 화면으로 이동시키는데
만약 앱이 설치가 안되어있다면 앱 스토어로 이동 후 설치 후에 특정 화면으로 바로 이동시키도록 하는 것을
지연된 딥링크라고도 부르기도합니다.
딥링크는 방식에 따라 크게 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
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 탭에 보시면 됩니다.
'개발 > 개발' 카테고리의 다른 글
[개발] - 세마포어와 뮤텍스 (0) | 2022.07.26 |
---|---|
[SwiftUI] - TabView 어떻게 만들지? (0) | 2022.07.26 |
[iOS] - MVVM 아키텍처 개선해보기 (0) | 2022.06.29 |
2022 WWDC 정리해보기 (0) | 2022.06.08 |
[iOS] - UIView & Layer 무엇이 다를까? (0) | 2022.05.09 |