반응형

Firebase Dynamic link 세팅 (1)

 

Firebase Dynamic link 세팅 (1)

새로 개발하는 앱에 , 컨텐츠 공유 기능이 필요하게 됐는데 이 기능을 위해선 공유하기 -> 공유 -> 링크선택 순서로 진행 후 앱이 설치되어 있으면 앱을 연 후 공유된 컨텐츠로 이동 , 위 방법 진

marvingood.tistory.com

 에서 한 내용 

1. flutter firebase 연동

2. firebase dynamick link 세팅

을 진행했다 이어서 이번편에서는 

1. ios, android 세팅

2 링크 연결 공유

를 목표로 잡고 진행함

 

A. Android

  • flutter. 앱에 firebase_dynamic_links 패키지를 설치 한다
flutter pub add firebase_dynamic_links
  • 프로젝트 폴더의 /android/app/src/main/AndroidManifest.xml 파일에 설정 값 작성
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:host="example.com"
        android:scheme="https"/>
</intent-filter>

deeplink 수신 방법과 동일 example.com 위치에는 Firebase Dynamic link 세팅 (1) 에서 작성한 domain을 넣어주면 된다 

 

B-1. ios xcode 사용

  • Xcode 앱을 연후 TARGETS 헤더에서 앱을 연다.
  • 서명 및 기능 페이지에서 팀이 등록되어 있고 프로비저닝 프로필이 설정되어 있는지 확인
  • 서명 및 기능 페이지에서 연결된 도메인을 사용 설정하고 연결된 도메인 목록에 다음을 추가
applinks:example.page.link

뒤 example.page.link 는 내가 설정한 도메인으로 등록 

  • 정보 페이지에서 프로젝트에 URL 유형을 추가합니다. URL 스키마 필드를 앱의 번들 ID로 설정
  • Firebase 프로젝트의 커스텀 도메인을 설정한 경우 FirebaseDynamicLinksCustomDomains 키를 사용하여 iOS 프로젝트의 Info.plist 파일에 동적 링크 URL 프리픽스를 추가
<?xml version="1.0" encoding="UTF-8"?>
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://custom.domain.io/path1</string>
    <string>https://custom.domain.io/path2</string>
</array>

...other settings

</dict>
</plist>

B-2. ios 플루터 ( IDE ) 사용시

 

ios/Runner/Runner.entitlements 파일오픈 후 

    <?xml version="1.0" encoding="UTF-8"?>
    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은 설정한 도메인으로 변경 해주면 된다.

 

만약 도메인을 무료제공이 아닌 커스텀을 등록했다면 ios/Runner/Info.plist 아래에 이와같이 추가 

<key>FirebaseDynamicLinksCustomDomains</key>
<array>
   https://example.app/share
</array>

세팅이 완료 되었다면 

Future<String> share(String screenName, String id) async {
  String dynamicLinkPrefix = 'https://{도메인}/{prefix를 설정했을 경우 여기 세팅 }';
  final dynamicLinkParams = DynamicLinkParameters(
    uriPrefix: dynamicLinkPrefix,
    link: Uri.parse('$dynamicLinkPrefix/$screenName?id=$id'),
    androidParameters: const AndroidParameters(
      packageName: '앱의 패키지명',
      minimumVersion: 0,
    ),
    iosParameters: const IOSParameters(
      bundleId: '앱의 패키지명',
      minimumVersion: '0',
    ),
  );
  final dynamicLink =
      await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

  return dynamicLink.shortUrl.toString();
}

위와같은 함수를 세팅해준다  링크를 log, print로 찍어보면 생성된 링크가 나오는데 

해당 링크를 url 접속을 하면 안나오고 

모바일 기기에서 붙여넣기나 브라우저로 실행하면 된다.

반응형

+ Recent posts