-
Firebase Dynamic Links 연결firebase 2023. 2. 23. 11:29반응형
Deep Link 란?
Application 내 특정 페이지에 도달할 수 있도록 하는 링크 사용자가 Deep link 접근 시, 앱이 설치되어 있는 경우 앱으로 이동하고 없으면 앱을 설치할 수 있는 앱스토어로 이동하게 됨.
test.page.link
app이름으로 입력
단축 URl 링크 설정
링크 이동시 스토어 또는 내 기기에 설치되어있다면 앱 바로 실행
딥링크 설정
회사 사이트 또는 스토어 url 입력해도됨
안드로이드 와 ios 에 밎는 스토어 정보를 넣어주기 위해 firebase 파라미터 규칙 참고
Firebase 동적 링크 | 딥 링크로 잠재 사용자를 앱 내부의 적절한 위치로 안내
애플 및 안드로이드 가각 만들어 놓은 링크 연결
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 패턴 허용 목록 클릭
- AppStoreconnect에 접속해 해당앱 ID 를 정규식에 넣어줌
- (안드로이드에서 나는 오류인데 왜 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 를 적어줌
반응형'firebase' 카테고리의 다른 글
flutter FCM 메시지 ios 수신시 알림음 및 진동 울리지 않는 현상 (1) 2023.06.14 Firebase 개인 정리 (0) 2023.04.11 Firebase firebase_dynamic_links 오류 (0) 2023.03.03 flutter_local_notifications 설정 (0) 2023.02.23 FLutter 와 FireBase 연동 (0) 2023.02.16