ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Firebase Dynamic Links 연결
    firebase 2023. 2. 23. 11:29
    반응형

    Deep Link 란?

    Application 내 특정 페이지에 도달할 수 있도록 하는 링크 사용자가 Deep link 접근 시, 앱이 설치되어 있는 경우 앱으로 이동하고 없으면 앱을 설치할 수 있는 앱스토어로 이동하게 됨.

    test.page.link

    app이름으로 입력

     

    단축 URl 링크 설정

    링크 이동시 스토어 또는 내 기기에 설치되어있다면 앱 바로 실행

    딥링크 설정

    회사 사이트 또는 스토어 url 입력해도됨

    안드로이드 와 ios 에 밎는 스토어 정보를 넣어주기 위해 firebase 파라미터 규칙 참고

    Firebase 동적 링크 | 딥 링크로 잠재 사용자를 앱 내부의 적절한 위치로 안내

     

    Firebase 동적 링크 | 딥 링크로 잠재 사용자를 앱 내부의 적절한 위치로 안내

    Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.

    firebase.google.com

     

    애플 및 안드로이드 가각 만들어 놓은 링크 연결

     


    Android

    안드로이드 스튜디오로 넘어와

    android/androidMainfest.xml

    activity 안에 입력

     

    클릭시 launchUrl 실행 로직 작성

    • Launcher 라이브러리만약에 Flutter 뷰와 함께 사용하고 싶다면 이전 글에서 다뤘던 webview_flutter 또는 flutter_inappwebview 라이브러리를 사용하여야 한다.
    • Launcher 라이브러리로 웹뷰를 띄우는 방식은 두 가지가 있는데, 앱 위에서 웹뷰를 띄우는 InApp 방식과 Safari, Chrome 등의 외부 앱으로 띄우는 OutApp 방식이 있다.

    url_launcher: ^6.1.6 *# URL 기반 앱 실행*

    launchUrl 로 url을 실행해준다.

    • 디바이스에 앱이 있는경우 앱 실행
    • 앱이 존재하지 않는경우 플레이스토어 실행

    ※ 주의사항

    1번 오류

    작성이의 경우 launchUrl 로 앱이 실행되지 않는 오류가 있었음

    해결 방법

    URL 패턴 허용 목록 클릭

    1. AppStoreconnect에 접속해 해당앱 ID 를 정규식에 넣어줌
    2. (안드로이드에서 나는 오류인데 왜 ios쪽을 처리 해줘야 하는지 잘 모르겠음)  상관 없는것으로 예상

    2번 오류

    만약 이런오류가 나온다면

    해결 방법 - 우리는 외부 사파리나 크롬 같은 브라우저로 연결 되기때문에 out_app 처럼

    mode: LaunchMode.externalApplication 를 추가해 준다

    in_app

      String _url = '<https://youtube.com>';
      onTap: () async {
    		if (await canLaunchUrlString(_url)) {
    			await launchUrlString(_url);
                }
            },
    

    out_app

      String _url = '<https://youtube.com>';
      onTap: () async {
    		if (await canLaunchUrlString(_url)) {
    			await launchUrlString(_url,
                       mode: LaunchMode.externalApplication);
                 }
            },
    

     

     

    IOS

    ios/Runner/Runner.entitlements 파일을 아래와 같이 수정

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
       <key>com.apple.developer.associated-domains</key>
       <array>
          <string>applinks:example.app</string>
       </array>
    </dict>
    </plist>

    여기서 example.app 부분을 앞서 Dynamic Links 에서 등록한 도메인을 적어주면 된다.

    applinks: 부분은 반드시 들어가야함

     

    또는

     

    x-code 접근

    Signing & Capabilities 항목에서 Associated Domains를 추가.

    Domains에 appliks:example.app 를 적어줌

     

     

    반응형

    댓글

Designed by Tistory.