본문 바로가기
flutter

Set up app links for Android

by Rogan_Kim 2023. 9. 3.
728x90

https://docs.flutter.dev/cookbook/navigation/set-up-app-links

 

Set up app links for Android

How set up universal links for an iOS application built with Flutter

docs.flutter.dev

 

 

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

 

GitHub - kimjuno97/kimjuno97.github.io

Contribute to kimjuno97/kimjuno97.github.io development by creating an account on GitHub.

github.com

 

'_config.yml' 파일을 추가하여 '.well-known'폴더도 같이 호스팅 해야합니다

더 궁금한 분들을 위하여 아래의 링크 첨부

GitHub Page

jekyllrb

 

아래는 로컬 키스토어를 만들어서 세팅하는 방법입니다.

구글 플레이콘솔 배포시는  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-platform-tools

Homebrew’s package index

formulae.brew.sh

 

 

어플을 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'로 이동하면 성공

728x90

댓글