본문 바로가기
Swfit

Custom URL Scheme으로 앱 redirect 하기

by GGShin 2023. 12. 30.

Firebase나 Supabase와 같은 Auth 서비스를 제공해 주는 플랫폼에서 Email 인증을 사용해보신 분이라면 URL Scheme을 이용한 앱 redirection을 해보셨을 겁니다. 어떠한 기능인지와 사용 방식에 대해 알아보겠습니다.

 

Custom URL scheme

Custom URL scheme은 앱 내부의 리소스를 참고할 수 있도록 해줍니다. 위에서 언급한 이메일 인증의 경우, 해당 플랫폼에서 이메일을 보내면 그 안에 URL link가 들어있었을 겁니다. 그 링크를 탭하면 내 앱으로 돌아가게 되는데, 그 링크가 바로 Custom URL scheme인 것입니다. 

 

더보기

NOTE

애플에서 사용할 수 있는 딥링킹의 형태는 URL Scheme과 Universal link가 있습니다. 보안상의 이유로 인해서 Universal link의 사용을 적극 권장하고 있습니다. 

보안상의 이유란, URL Scheme은 개발자가 임의로 정할 수 있습니다. 그러다 보니 서로 다른 다수의 앱이 동일한 scheme을 사용할 수 있다는 한계가 있습니다. 유명 앱의 scheme을 알아낸 뒤 자신의 앱에서 사용해, 사용자들을 의도치 않은 앱으로 이동시키는 것 같은 악용사례가 있어서 그렇다고 합니다.

 

사용방법

사용방법은 굉장히 쉽습니다. 

App Target>Info>URL Types에 추가해주면 됩니다. 

URL Types 부분에 처음에는 아무 항목도 없을 텐데, + 버튼을 눌러서 추가해주면 됩니다.

Info에서 설정하기

URL Types 상자 안에 URL Schemes 부분에 Custom URL Scheme을 넣어주면 됩니다.

Scheme은 간단하게 "myphotoapp" 처럼 앱 이름을 사용해도 됩니다.  저는 다른 앱과 sheme 충돌 확률을 낮추기 위해 reverse domain을 이용하고 있습니다. 애플 문서에서도 그게 best practice라고 하네요. (그럼에도 Universal links를 추천합니다.)

To ensure uniqueness, specify a reverse DNS string that incorporates your company’s domain and app name. Although using a reverse DNS string is a best practice, it doesn’t prevent other apps from registering the same scheme and handling the associated links. Use universal links instead of custom URL schemes to define links that are uniquely associated with your website. (https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app#Register-your-URL-scheme)

 

그리고 ASC에 등록할 필요는 없습니다. 그냥 저렇게 명시만 해주면 끝입니다.

 

Scheme이 제대로 동작하는 지 보려면 앱이 설치되어 있는 핸드폰 노트 앱 같은 곳에 "url scheme://identifier" 형식으로 url을 적은 다음에 링크를 탭해서 확인하면 됩니다.

 

RPReplay_Final1703914090.MP4
0.67MB

 

 

더 알아보기

자주 사용되는 URL Scheme의 경우 시스템에 reserved 되어 있습니다. 이런 scheme들은 URL Types에 따로 명시하거나 개발자가 설정할 필요 없이 바로 사용 가능합니다. 대표적인 scheme들은 아래 링크에서 확인해서 사용 가능합니다.

https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899

mailto 같은 경우, mailto:user@email.com 이런 식으로 특정 주소로 메일을 작성하는 화면을 바로 띄워줍니다. Youtube에서 특정 비디오로 안내 되도록 할 수도 있어서 굉장히 편리합니다.

 

 

참고자료

https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app#Register-your-URL-scheme

반응형