firebase

Firebase Dynamic Links 연결

이나주니 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 를 적어줌

 

 

반응형