iOS 딥링크 작업에서 꼭 알아야 할 Info.plist 설정
CFBundleURLSchemes vs LSApplicationQueriesSchemes
iOS 앱 개발에서 딥링크, 서드파티 로그인, 앱 간 인증을 구현하다 보면 Info.plist 파일에 꼭 등장하는 두 가지 키워드가 있습니다.
바로 CFBundleURLSchemes
와 LSApplicationQueriesSchemes
입니다.
이 둘은 모두 앱의 URL Scheme과 관련되어 있지만, 역할과 사용 목적이 다릅니다.
1. CFBundleURLSchemes
(외부에서 내 앱을 호출하는 URL Scheme 등록)
무엇을 하는가? 외부(다른 앱, 웹 등)에서 내 앱을 호출할 수 있는 URL Scheme을 등록합니다.
언제 필요한가? 예를 들어, "myapp://"와 같은 Scheme을 등록하면, 다른 앱이나 웹페이지에서 이 URL을 호출해 내 앱을 직접 열 수 있습니다.
딥링크 작업에서의 역할 최근 딥링크 기능을 구현하면서, 외부에서 내 앱을 열고 특정 화면으로 바로 이동시키기 위해 이 설정이 필수였습니다.
설정 예시
xml<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array> </dict> </array>
2. LSApplicationQueriesSchemes
(내 앱에서 다른 앱의 URL Scheme 사용 허용)
무엇을 하는가? 내 앱이 다른 앱을 열 수 있는지 확인할 때 사용할 수 있는 URL Scheme 목록을 미리 선언합니다.
언제 필요한가? 예를 들어, 페이스북, 카카오톡 등 외부 앱을 canOpenURL:로 열기 전에 반드시 Info.plist에 해당 앱의 Scheme을 등록해야 합니다. (iOS 9 이상 필수 - 보안/프라이버시 강화 목적)
설정 예시
xml<key>LSApplicationQueriesSchemes</key> <array> <string>fb</string> <string>kakaotalk</string> </array>
한눈에 정리
CFBundleURLSchemes
외부에서 내 앱 호출
딥링크, 서드파티 인증 콜백
LSApplicationQueriesSchemes
내 앱에서 외부 앱 호출 확인
canOpenURL: 사전 등록 필요
결론
딥링크, 서드파티 인증 등 앱 간 연동이 필요한 작업을 할 때는 위 두 설정을 꼭 구분해서 사용해야 합니다. 특히 딥링크를 구현할 때는 CFBundleURLSchemes 등록이 필수라는 점
Last updated