반응형
에서 한 내용
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 접속을 하면 안나오고
모바일 기기에서 붙여넣기나 브라우저로 실행하면 된다.
반응형