iOS 딥링크 작업에서 꼭 알아야 할 Info.plist 설정

CFBundleURLSchemes vs LSApplicationQueriesSchemes

iOS 앱 개발에서 딥링크, 서드파티 로그인, 앱 간 인증을 구현하다 보면 Info.plist 파일에 꼭 등장하는 두 가지 키워드가 있습니다. 바로 CFBundleURLSchemesLSApplicationQueriesSchemes입니다. 이 둘은 모두 앱의 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