https://docs.flutter.dev/cookbook/navigation/set-up-app-links
App Link 세팅 과정 기록
1. Customize a Flutter application
1. To create a new application, type flutter create <app-name>:
$ flutter create deeplink_cookbook
2. To include go_router package in your app, add a dependency for go_router to the project:
flutter pub add go_router
3. main.dart.
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
void main() => runApp(MaterialApp.router(routerConfig: router));
/// This handles '/' and '/details'.
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (_, __) => Scaffold(
appBar: AppBar(title: const Text('Home Screen')),
),
routes: [
GoRoute(
path: 'details',
builder: (_, __) => Scaffold(
appBar: AppBar(title: const Text('Details Screen')),
),
),
],
),
],
);
2. AndroidManifest.xml 수정
- android/app/src/main/AndroidManifest.xm > 아래의 내용을 추가만한다
- exmaple.com > 도메인 넣기
<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
//<data android:scheme="http" android:host="example.com" />
<data android:scheme="http" android:host="kimjuno97.github.io" />
<data android:scheme="https" />
</intent-filter>
3. Assetlinks.json 파일 호스팅
깃헙 페이지 사용
https://github.com/kimjuno97/kimjuno97.github.io
'_config.yml' 파일을 추가하여 '.well-known'폴더도 같이 호스팅 해야합니다
더 궁금한 분들을 위하여 아래의 링크 첨부
아래는 로컬 키스토어를 만들어서 세팅하는 방법입니다.
구글 플레이콘솔 배포시는 sha256 지문을 찾아서 넣으면 됩니다
- keystore생성
keytool -genkeypair -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
생성할때는 비밀번호와 name만 입력하고 다 넘겨도 됩니다
- key 보기
keytool -list -v -keystore my-release-key.keystore
sha256_cert_fingerprints에 'SHA256' 부분 찾아서 넣으면 됩니다.
마지막으로 assetlinks.json 세팅
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.deeplink_cookbook",
"sha256_cert_fingerprints":
["FF:2A:CF:7B:DD:CC:F1:03:3E:E8:B2:27:7C:A2:E3:3C:DE:13:DB:AC:8E:EB:3A:B9:72:A1:0E:26:8A:F5:EC:AF"]
}
}]
package_name은 android/app/src/build.gradle > defaultConfig 부분을 찾으면 됩니다.
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.deeplink_cookbook"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
4. 테스트
adb가 있어야 합니다.
만약 없다면 homebrew에서 설치하는 방법 추천드립니다
https://formulae.brew.sh/cask/android-platform-tools#default
어플을 android 폰에 한번 실행해서 설치 한 후에 아래의 명령어로 테스트하
adb shell 'am start -a android.intent.action.VIEW \
-c android.intent.category.BROWSABLE \
-d "http://kimjuno97.github.io/details"' \
com.example.deeplink_cookbook
router 기준 'details'로 이동하면 성공
'flutter' 카테고리의 다른 글
Flutter에서 사이드 메뉴 구현하기 (0) | 2023.09.04 |
---|---|
Set up universal links for iOS (0) | 2023.09.03 |
(flutter) uni_links + go_router => routing 안됨 (해결 못함.) (0) | 2023.08.30 |
Flutter 구글플레이스토어 공개 테스트용 App Bundle 만들기 with 카카오 소셜로그인 (0) | 2023.08.28 |
mac flutter 세팅 기록 (0) | 2023.03.18 |
댓글