Android 기초 설정

푸시메세지 발송을 위한 Android OS 에서 필수로 설정해 주셔야 하는 가이드입니다.

가장 먼저 푸시 발송을 위한 필수 설정을 위해 아래의 두 가지를 순서대로 진행 해 주세요.

  1. FCM 인증서 설정

  1. 대시보드 설정

SDK 설치

프로젝트 build.gradle

프로젝트의 build.gradle ( root 파일 ) 에 아래와 같이 repository 주소를 추가해주세요.

...
allprojects {
    repositories {
        google()
        mavenCentral() 
         /* wisetracker sdk repository config */
        maven {
            def endPoint = "https://analytics.wisetracker.co.kr/console/android/sdk/github/credentials.do"
            url = uri(new URL(endPoint+'?name=URI').text)
            credentials {
                username = new URL(endPoint+'?name=USER').text
                password = new URL(endPoint+'?name=TOKEN').text
            }
        }
    }
}
...
buildscript {
  repositories {
    google()
    mavenCentral()
  }
  dependencies {
    ...
    /* Google services */
    classpath 'com.google.gms:google-services:4.3.15'  // Google Services plugin
    ...
  }
}

Android 13 이상의 버전에서 푸시 알림 권한 획득을 위한 설정

프로젝트 수준 혹은, app 수준 "build.gradle"의 "targetSdkVersion = 33" 이상이어야 합니다.

buildscript {
    ext {
        ...
        targetSdkVersion = 33
        ...

app모듈 build.gradle

프로젝트의 app/build.gradle 파일에 있는 dependencies에 아래와 같이 Wisetracker SDK를 추가해주세요.

이 때, Java와 Kotlin에 따라 이용하는 모듈명이 달라집니다.

...
// 1. Google Services plugin 추가
apply plugin: 'com.google.gms.google-services'  
...

android {
  ...
}
...
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ....
    // 2. Wisetracker SDK 적용
     implementation "com.sdk.wisetracker:base_module:latest.release"
     implementation "com.sdk.wisetracker:new_dot_module:latest.release"
    
    // 3. Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.0.0')
    
    // 4. Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-messaging'
}
...

AuthorizationKey 등록

app/res/values/strings.xml

프로젝트의 app/res/values/strings.xml 파일에 아래 코드를 추가합니다. 추가한 코드 중 3번 라인 serviceNumber의 value를 올바른 값으로 변경해야 합니다.

<string-array name="dotAuthorizationKey">
    <item name="useMode">1</item>
    <item name="serviceNumber">xxxxx</item>     >>> 서비스 번호 확인 후 변경
    <item name="expireDate">14</item>
    <item name="isDebug">false</item>
    <item name="isInstallRetention">true</item>
    <item name="isFingerPrint">true</item>
    <item name="accessToken"></item>
</string-array>

추가한 코드 중 serviceNumber의 value를 올바른 값으로 변경해야 합니다.

와이즈트래커 대시보드에 로그인하여 설정 > 서비스설정 메뉴에서 '서비스번호' 항목에 기재된 숫자를 확인 후 복사하여 serviceNumber 값을 변경 해 주세요.

서비스번호 확인

HTTP 통신 허용

프로젝트의 Target API가 API Level 28 이상일 경우에 적용하는 설정입니다. 아래와 같이 HTTP 통신을 허용하는 두 가지 설정을 추가해주세요. 작성되어 있는 코드에, 아래 한 줄 짜리 networkSecurityConfig 코드를 복사하여

android:networkSecurityConfig="@xml/network_security_config"

<application androidname = > 안에 붙여넣기 하면 아래 최종 코드와 같은 모양이 됩니다.

<application androidname=".MainApplication"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:allowBackup="false"
    android:networkSecurityConfig="@xml/network_security_config" > <!-- API Level 28 이상일 경우 해당 라인 추가 --> 
    

app/res/xml/network_security_config.xml 설정

  1. network_security_config.xml 파일을 생성합니다.

  2. 로컬에서 개발하는 경우에는 아래와 같이 로컬 개발환경을 추가해야 metro server와 통신할 수 있습니다.

<domain includeSubdomains="true">localhost</domain>
  1. 로컬 환경을 추가 한 후, xml 파일에 와이즈트래커 도메인을 추가 해 주세요.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
        <domain includeSubdomains="true">trk.analytics.wisetracker.co.kr</domain>
    </domain-config>
</network-security-config>
  1. trk.analytics.wisetracker.co.kr ▶️ 도메인을 추가 해 주시면 와이즈트래커 SDK 통신이 가능해집니다.

푸시알림 권한 설정 (AndroidManifest.xml)

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

"android.permission.POST_NOTIFICATIONS" 권한을 추가합니다. 이 권한 설정은 <application> 태그 위에서 선언합니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="XXX">

    <!-- Wisetracker SDK for Push -->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    ...
    
    <application
        android:name="ZZZ"
        ...>

초기화

Application을 상속받는 클래스가 아닌 Activity를 상속받는 기본 화면의 onCreate() 함수에 적용해 주세요. 여기서 말하는 기본 화면은 AndroidManifest.xml 파일에 선언된 Activity 중, "android.intent.action.MAIN""android.intent.category.LAUNCHER" Intent-Filter 가 적용된 Activity를 의미합니다.

Application을 상속받는 클래스가 아닌 Activity를 상속받는 기본 화면의 onCreate() 메쏘드에 적용해 주세요

import com.sdk.wisetracker.new_dot.open.DOT;

public class MainActivity extends ReactActivity {
  ...
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);    
    ...
    ...
    // SDK 호출
    DOT.initialization(this);
    ...
  }
  ...
}

Bridge파일 추가

마지막으로 bridge 함수들을 호출 할 수 있게 bridge 파일을 추가 합니다.

왼쪽이미지는 앞서 설명드린 준비사항 안내페이지에서 플러그인 다운로드시 생긴 DotReactNativeBridge 폴더 하위에 있는 "kr"폴더의 위치를 보여줍니다.

해당 kr 폴더를 복사한 뒤 , 오른쪽에 보이는 현 프로젝트 폴더의 /프로젝트명/android/app/src/main/java 경로에 복사한 "kr" 폴더를 붙여넣기 합니다.

DotReactBridge 객체 NativeModules 등록

파일 추가 후 MainApplication.java 파일에 Wisetracker SDK BridgePackage를 추가 해 줍니다.

import kr.co.wisetracker.BridgePackage;

public class MainApplication extends Application implements ReactApplication {
    private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(
      this,
      new ReactNativeHost(this) {
      ...
      ...
      @Override
      protected List<ReactPackage> getPackages() {
        @SuppressWarnings("UnnecessaryLocalVariable")
        List<ReactPackage> packages = new PackageList(this).getPackages();
  
        // Wisetracker SDK BridgePackage 추가
        packages.add(new BridgePackage());
  
        return packages;
      }
  
      @Override
      protected String getJSMainModuleName() { return "index"; }
      ...
      ...
    });
  }va

안드로이드 기초설정은 완료하셨습니다 🎉

다음으로 iOS 기초설정을 위한 단계를 진행 해 주세요 👇🏻

Last updated

Was this helpful?