Adjust 스토어 사전 설치 툴

앱이 기기에 사전 설치된 경우에는 사전 설치 트래커를 사용하여 사용자를 어트리뷰션해야 합니다. Adjust의 스토어 & 사전 설치 툴(adjust-dtt)은 APK에 이러한 정보를 넣을 수 있도록 해줍니다. Adjust SDK는 adjust-dtt에 의해 삽입된 정보를 읽습니다. 이를 통해 사전 설치된 앱의 사용자를 특정 Adjust 트래커로 어트리뷰션할 수 있습니다.

시작에 앞서

참고:
본 툴은 APK를 생성할 수 있는 모든 개발자 프레임워크와 함께 사용할 수 있습니다.

시작하려면 GitHub에서 adjust-dtt 툴을 다운로드하시기 바랍니다. 툴 사용을 위해 해당 파일을 실행 파일로 만들어야 합니다. 다음의 명령어를 실행하여 파일을 실행 파일로 설정합니다.

chmod +x adjust-dtt

adjust-dtt 실행을 위해 다음이 기기에 설치되어 있어야 합니다.

  1. rubyadjust-dtt 실행에 사용되는 언어 툴
  2. apktool – APK를 언패킹 및 리패킹하기 위한 툴
  3. jarsigner – APK 서명 툴

설치 설명서

Ruby

Apktool

Jarsigner

PATH에 툴 추가

adjust-dtt 가 작동하려면 apktooljarsigner 가 모두 쉘의 PATH 변수에 있어야 합니다. 다음의 명령어를 실행하여 PATH 에서 사용 가능한지 확인합니다.

# apktool의 위치 반환
which apktool

# jarsigner 위치 반환
which jarsigner

brew, apt, dnf, pacman 와 같은 패키지 매니저는 툴 설치 시 이러한 툴을 PATH 에 추가합니다. 이 툴을 다른 방식으로 설치한 경우, PATH 에 수동으로 툴을 추가해야 합니다.

예: 다음의 위치에 apktool (1)과 jarsigner (2)를 다운로드 할 수 있습니다:

macOS
Linux
  1. /User/username/apktool/
  2. /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/

터미널에서 툴에 액세스하려면, 해당 디렉터리가 PATH 에 있어야 합니다.

:
대부분의 Linux 배포 버전에서 기본 설정 쉘은 Bash입니다. macOS의 경우 기본 설정 쉘은 Zsh입니다.

PATH 에 새 디렉터리를 추가하려면 쉘 실행 명령어 파일(rc)에서 PATH 변수를 편집해야 합니다. 이 파일은 일반적으로 홈 디렉터리에 있습니다. .{shell name}rc 와 같은 네이밍 형식을 사용합니다.

rc 파일에 새 디렉토리를 추가하여, PATH 에 새 디렉토리를 추가할 수 있습니다. 각 디렉터리 항목은 콜론(:)으로 구분해야 합니다. 원하는 편집 프로그램에서 해당 파일을 연 뒤, 다음을 끝에 추가합니다:

macOS
Linux
export PATH="/User/username/apktool/:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/:$PATH"

파일에 디렉터리 추가가 완료되면, 저장 후 종료하시기 바랍니다. 소스들은 다음 번에 터미널을 열 때 PATH 에서 이용 가능합니다. 즉시 이용 가능하도록 하려면 다음의 명령어를 실행하시기 바랍니다.

macOS
Linux
source ~/.zshrc

축하합니다! 이제 adjust-dtt 툴 실행에 필요한 모든 절차가 완료되었습니다.

사전 설치 트래커 정보 추가

1단계: keystore 파일 얻기

APK를 생성하면 Android Studio가 이를 서명할 것입니다. 이는 APK의 "비서명" 버전을 생성한 경우에도 마찬가지입니다. 이 경우 Android Studio는 APK를 기본 설정된 디버그 서명 keystore 파일로 서명합니다. 이 keystore 파일은 기본 설정에 따라 ~/.android/debug.keystore 에 있습니다.

Android Studio에서 서명된 SPK를 내보내기 하는 경우, APK를 커스텀 서명 keystore 파일로 서명하게 됩니다.

adjust-dtt 를 사용하려면 디폴트 keystore 파일 또는 맞춤 keystore 파일에 액세스할 수 있어야 합니다. apktool 를 사용하여 APK를 언패킹할 때 가 모든 서명을 제거하기 때문입니다. APK 리패킹이 완료되면 서명은 재활성화 될 수 없습니다. 따라서, APK 재서명을 위해 서명 정보와 함께 jarsigner 를 실행해야 합니다. Android 기기 전달을 위해 어플리케이션은 재서명되어야 합니다.

2단계: 트래커 토큰 생성하기

다음 단계는 Adjust 대시보드에서 트래커 토큰 생성을 필요로 합니다. 이 트래커는 사전 설치 앱에 대한 기본 설정 트래커로 사용될 것입니다. 따라서, 사전 설치된 앱이 있는 모든 유저는 해당 트래커에 어트리뷰션될 것입니다.

3단계: config 파일 생성하기

keystore 파일과 트래커 토큰이 모두 준비되면 configuration 파일을 생성해야 합니다. adjust-dtt 앱은 설정을 읽기 위해 adjust-config.yaml configuration 파일을 사용합니다. 이 파일은 설정해야 하는 모든 앱 스토어에 대한 설정을 포함합니다.

adjust-config.yaml 에서 다음의 파라미터를 설정할 수 있습니다.

파라미터

다음은 adjust-config.yaml 파일의 예시입니다. 본 예시는 store_1 , store_2 , store_3 이라는 이름의 3개 스토어에 대한 설정을 포함합니다.

apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
    store_1:
        default_tracker: abc123
    store_2:
        default_tracker: abc456
    store_3:
        default_tracker: abc789

각 스토어에 동일한 설정을 사용하고자 하는 경우, 파일의 루트에 글로벌 파라미터를 정의할 수 있습니다. 스토어별로 설정된 파라미터는 해당 스토어에 대한 글로벌 파라미터보다 우선으로 취급됩니다. 그 예는 다음과 같습니다.

apk_path: /Users/username/Desktop/apk/example-release.apk
keystore_path: /Users/username/Desktop/apk/mykeystore.jks
keystore_pass: mykeystorepass
keystore_alias: mykeystorealias
stores:
    store_1:
        default_tracker: abc123
        keystore_path: /Users/username/Desktop/apk/differentkeystore.jks
        keystore_pass: differentkeystorepass
        keystore_alias: differentkeystorealias
    store_2:
        default_tracker: abc456
    store_3:
        default_tracker: abc789

본 예시에서 adjust-dtt 툴은 store_1 에 대한 APK를 생성할 때 differentkeystore.jks, differentkeystorepass , differentkeystorealias 를 사용합니다. 이 툴은 각 스토어에 대해 수정된 APK를 생성할 것입니다.

4단계: adjust-dtt 툴 실행하기

adjust-dtt 툴은 adjust-config.yaml 파일에 대한 경로를 인수로 사용합니다. 트래커 정보를 APK에 추가하려면 툴을 다음과 같이 실행하십시오.

adjust-dtt adjust-config.yaml

adjust-dtt 툴 실행 시, 다음과 같이 작동합니다.

  1. APK를 폴더로 언패킹합니다. 폴더는 APK와 동일한 디렉터리에 위치할 것입니다. 이름 또한 APK와 동일합니다.

  2. assets 폴더와 adjust_config.properties 파일을 검색합니다. adjust_config.properties 파일은 디폴트 트래커 정보를 포함합니다.

    • 존재하지 않는 경우 assets 폴더와 adjust_config.properties 파일을 생성합니다. 본 툴은 default_tracker 정보를 adjust_config.properties 파일에 입력합니다.
    • adjust_config.properties 파일이 있는 경우 해당 파일에 default_tracker 정보를 씁니다. 파일이 이미 디폴트 트래커를 포함한 경우에는 두 값이 비교될 것입니다. 두 값이 다른 경우, adjust-config.yaml 파일의 값은 기존의 값을 덮어쓰게 됩니다.
  3. APK를 리패키징합니다.

  4. adjust-config.yaml 에 명시된 정보로 APK를 서명합니다. 이는 keystore_path, keystore_pass, keystore_alias 파라미터를 사용합니다.

  5. 원본과 동일한 이름과 _[store_name] 접미사를 가진 APK 생성. 위 예시에서 툴은 3개의 APK 파일을 생성합니다. 이 메서드의 이름은 example-release_store_1.apk, example-release_store_2.apk , example-release_store_3.apk 입니다. 툴이 파일 생성을 완료한 이후 이름을 변경할 수 있습니다.

본 툴과 관련한 문의 사항 및 문제 발생 시 support@adjust.com으로 연락주시기 바랍니다.