Apple Universal Links

Overview

Branch는 전체 어트리뷰션을 제공하고 유니버셜 링크(Universal Links)가 실패하는 엣지 케이스를 서포트하며 유저가 앱을 설치하지 않은 경우 딥링크 (Deep Link)를 허용함으로써 유니버셜 링크(Universal Links) 사용을 간단하게 만들면서도 많은 개선을 이룹니다.

1264

유니버셜 링크(Universal Links) 설정

  1. To get started, you’ll need to enable Universal Links on the Branch dashboard. To do this:
    a. Navigate to Configuration page in the Branch Dashboard.
    b. Check the box to Enable Universal Links from iOS redirects.
    c. Type in your App’s Bundle Identifier. (Learn more on this page )
    d. Type in your Apple App Prefix (found by clicking your app on this page in Apple's Developer Portal).
    e. Scroll down and click on the Save button.

  2. From here, you’ll enable Associated Domains in Xcode by:
    a. Go to the Capabilities tab of your project file.
    b. Scroll down and enable Associated Domains.
    c. If you see an error after this step, please check that:

    1. Xcode 프로젝트에 적합한 팀이 선택됩니다.
    2. Xcode 프로젝트의 Bundle Identifier는 Apple에 앱 식별자를 등록하는 데 사용된 식별자와 일치합니다.
  3. Add your Branch link domains by:
    a. On the Configuration page, find the Link Domain section.
    b. Copying your domain name.
    c. In the Domains section, click the + icon and add the following entries: (making sure that xxxx matches the subdomain prefix you've been assigned or selected for yourself)

    • applinks:xxxx.app.link
    • applinks:xxxx-alternate.app.link
    • applinks:xxxx.test-app.link
    • applinks:xxxx-alternate.test-app.link

🚧

레거시 링크 서포트

If the Default domain name box shows the legacy bnc.lt domain, you should use the following entry instead: applinks:bnc.lt

📘

커스텀 도메인 또는 서브도메인을 사용하십니까?

If you use a custom domain or subdomain for your Branch links, you should instead add entries for applinks:[mycustomdomainorsubdomain], XXXX.app.link and XXXX-alternate.app.link. If you're unsure of your Branch-assigned app.link subdomain, contact our support team, and we can provide it.

유니버셜 링크(Universal Links)를 서포트하는 앱/브라우저

불행히도 유니버셜 링크(Universal Links)는 모든 곳에서 작동하지는 않습니다. 여기에서는 일부 인기 앱의 유니버셜 링크(Universal Links) 서포트 상태를 정리했습니다.

항상 작동하는 앱

다음 앱 중 하나에서 유니버셜 링크(Universal Links)를 열면 항상 올바르게 작동합니다.

  • Messages
  • Mail
  • WhatsApp
  • Gmail
  • Inbox

Apple에서 제한하는 앱

Apple은 특정 상황에서 유니버셜 링크(Universal Links)를 제한했습니다.

  • 링크를 브라우저 URL 필드에 붙여 넣으면 유니버셜 링크(Universal Links)가 작동하지 않습니다.
  • Universal Links will not work with a user-driven <a href="..."> element click on the same domain. For example, if there is a Universal Link on google.com pointing to a different Universal Link on google.com, it will not open the app.
  • Universal Links cannot be triggered via Javascript (in window.onload or via a .click() call on an <a> element) unless it is part of a user action.

Apps/Browsers that work conditionally:

  • Safari
  • Chrome

가끔 작동하는 앱

Apps with built-in webviews (Google, Twitter, Facebook, Facebook Messenger, WeChat, etc.) work with Universal Links only when a webview is already open. In other words, Universal Links do not work in-app from the feed or main app views.
To work around this limitation, your links must have Deepviews or something similar enabled, with a call-to-action link or button with a Universal Link behind it. This way, clicking a link from the app feed will open a webview containing your Deepview page, and the user can then click the link/button to launch your app. All of Apple's limitations (in the section above) still apply for the Deepview page.

Apps/Browsers that work conditionally:

  • Google
  • Facebook
  • Facebook Messenger
  • WeChat
  • Twitter
  • LinkedIn
  • Instagram을 사용하는 SFSafariViewController

특수 사례가 있는 앱

Slack은 Safari에서 링크를 열도록 설정된 경우 작동합니다. 그렇지 않으면 위 섹션에서와 같이 조건부로 작동합니다.

작동하지 않는 앱

  • 모든 앱
  • Pinterest
  • Telegram

유니버셜 링크(Universal Links) 실패를 유발하는 일반적인 문제

Safari에 수동으로 들어가서 테스트하고 있습니까? Safari에 들어가면 유니버설 링크(Universal Links)가 제대로 작동하지 않습니다. 테스트를 위해 Notes 또는 iMessage를 사용하세요.
Branch 링크를 다른 링크로 래핑하고 리디렉션하고 있습니까? 대부분의 경우 유니버설 링크(Universal Links)는 클릭 트래킹 링크로 "래핑"된 경우 앱을 오픈하지 않습니다. Branch 링크를 포함하는 유니버설 링크(Universal Links)는 독립형이어야 합니다. 모든 상황에서 유니버설 링크(Universal Links)가 작동하도록 하려면 Branch 링크로 경로를 리디렉션하는 다른 링크를 사용하지 마십시오.
팀 ID 및 번들 ID가 대시보드에 있는 것과 일치합니까? You can find them in the Dashboard on the [Configuration](dashboard.branch.io/configuration/general) page, in the iOS section next to "Enable Universal Links." They should match your Team ID and Bundle ID. Team ID can be found here https://developer.apple.com/membercenter/index.action#accountSummary. Your Bundle ID is found in Xcode, in the **General** tab for the correct build target. If your Apple App Prefix is different from your Team ID, you should use your App Prefix. Your app prefix can be found from App IDs on Apple's Developer Portal.
앱을 삭제하고 다시 설치했습니까? iOS는 앱을 삭제하고 다시 설치하지 않는 한 Apple-app-site-association 파일을 다시 스크랩하지 않습니다. (이에 대한 유일한 예외는 App Store 업데이트입니다. iOS는 업데이트 때마다 다시 스크랩합니다. 즉, 사용자가 Applinks 권한이 있는 앱 버전으로 업데이트하면 유니버셜 링크(Universal Links)가 작동하기 시작합니다.)
유니버셜 링크(Universal Links)를 비활성화할 수 있습니다. 유니버셜 링크(Universal Links)를 통해 성공적으로 앱으로 이동한 경우 상태 표시줄의 오른쪽 상단에 "app.link" (또는 도메인)와 포워드 버튼이 표시됩니다. 이 버튼을 클릭하면 Apple은 앞으로 더 이상 유니버셜 링크(Universal Links)를 활성화하지 않습니다. 유니버셜 링크(Universal Links)를 다시 활성화하려면 메시지 (iOS 10의 Message 개정으로 인해 iOS 9에만 해당) 또는 Notes (iOS 10/9)의 링크를 길게 누르고 'Open in APP'를 선택합니다.
커스텀 도메인을 사용하십니까? Make sure it's configured correctly. The following error message will appear in your OS-level logs if your domain doesn't have SSL set up properly:
Sep 21 14:27:01 Derricks-iPhone swcd[2044] : 2015-09-21 02:27:01.878907 PM [SWC] ### Rejecting URL 'https://examplecustomdomain.com/apple-app-site-association' for auth method 'NSURLAuthenticationMethodServerTrust': -6754/0xFFFFE59E kAuthenticationErr

이러한 로그는 Window > Devices > 디바이스 선택으로 이동한 다음 기본 보기의 왼쪽 하단에 있는 "위쪽" 화살표를 클릭하여 Xcode에 연결된 물리적 디바이스에 대해 발견될 수 있습니다.

If you're using a custom subdomain, your CNAME should point to custom.bnc.lt under Configuration in the Branch dashboard.