Android Signature 라이브러리 연동

Adjust 의 SDK 라이브러리는 Adjust SDK 를 위한 독립형 플러그인으로 설계되었습니다. 즉, 코드를 변경하거나 앱에서 Adjust SDK를 사용하는 방식을 변경할 필요가 없습니다. 플러그인을 설치하면 Adjust SDK의 모든 요청이 계속해서 정상적으로 작동할 것입니다.

시작하기 전에

Android 앱에 Signature 라이브러리를 연동하려면 다음을 확인하시기 바랍니다.

  • 사용 중인 Android API 버전이 21 이상 입니다.
  • 사용 중인 Adjust SDK 버전이 4.35.1 이상 입니다.
  • Proguard를 사용하는 경우, Signature 라이브러리와 Adjust SDK 모두에 대해 동일한 Proguard 구성을 사용해야 합니다.

Signature v1 또는 v2 라이브러리에서 마이그레이션

이전에 Signature v1 또는 Signature v2를 사용한 경우, Signature 라이브러리를 연동하기 전에 이전 버전을 삭제해야 합니다. 다음을 수행하시기 바랍니다.

  • 이전에 Signature v1을 연동한 경우, 프로젝트에서 Signature 함수를 호출하는 모든 코드를 삭제합니다.
  • 이전에 Signature v2를 연동한 경우, 프로젝트에서 Signature v2 라이브러리를 삭제합니다.

연동 단계

Android 프로젝트에 Signature 라이브러리를 연동하려면 다음의 단계를 수행하시기 바랍니다.

  1. GitHub에서 Signature 라이브러리 콘텐츠를 가져옵니다.
  2. 앱 모듈 디렉토리 내에 새로운 libs 디렉토리를 생성합니다.
  3. 제공된 AAR 라이브러리를 libs 디렉토리에 복사합니다.
  1. 앱 수준 build.gradle 파일을 열고 다음을 추가합니다.

    android {
       defaultConfig {
          ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
       }
    }
    
    dependencies {
       implementation files('libs/adjust-lib.aar')
    }
  2. Android 스튜디오 팝업에서 지금 동기화 를 선택하여 변경 내용을 동기화합니다.

이제 끝입니다! 이제 Signature 라이브러리가 프로젝트에 연동되었습니다. 다음 섹션의 단계를 수행하여 Adjust suite에서 디지털 인증서를 구성하시기 바랍니다.

Adjust suite에서 인증서 설정

Signature 라이브러리를 앱에 연동하면 Adjust SDK가 Adjust로 전송하는 모든 요청이 서명됩니다. Adjust SDK는 또한 서명된 인증서의 핑거프린트를 포함한 관련 정보를 Adjust 서버로 전송합니다.

인증서 핑거프린트는 인증서에 보관된 공개 정보의 암호화 해시입니다. 앱의 신뢰성을 검증하는 데 사용될 수 있습니다.

서명 라이브러리는 인증서 핑거프린트의 신뢰성을 검증할 수 없습니다. 핑거프린트가 포함된 Adjust suite 요청이 Adjust 에 의해 승인되려면 의 허용 리스트에 핑거프린트가 추가되어야 합니다. 이를 위해서는 인증서 핑거프린트를 가져와 Adjust에 전송해야 합니다.

keystore에서

자체 keystore를 사용하거나 Android Studio가 keystore를 생성한 경우, 다음의 단계에 따라 인증서 핑거프린트를 조회할 수 있습니다.

  1. 앱의 릴리스 버전 서명에 사용한 키스토어 파일(.jks)을 찾습니다. 키스토어는 Google Play Store로 전송된 릴리스 버전에 서명할 때 사용한 키스토어여야 합니다. 키스토어가 다른 경우 SDK 요청은 거부됩니다.

  2. 다음의 명령어를 실행하여 키를 나열합니다. 괄호 안의 내용은 입력한 정보로 대체합니다.

    keytool -list -v -keystore <path/to/keystore.jks> -alias <your_key_alias>

    이 명령어는 keystore 암호를 입력하라는 프롬프트를 표시합니다. 이는 키스토어 생성 시 정의한 비밀번호입니다.

    최종 출력은 다음과 같습니다.

    Alias name: Key0
    Creation date: May 15, 2018
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=[Adjust, GmbH.]
    Issuer: CN=[Adjust, GmbH.]
    Serial number: 642f1b62
    Valid from: Tue May 15 09:46:06 CEST 2018 until: Sat May 09
    09:46:06 CEST 2043
    Certificate fingerprints:
    MD5: E7:88:9F:8C:9D:F4:14:C1:CF:E8:4C:97:F3:F2:3A:E3
    SHA1:
    C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
    SHA256:
    55:FB:97:0F:46:0F:94:EC:07:EA:01:69:50:5A:20:3F:A0:91:60:A4:F
    1:33:58:EA:76:DC:54:9E:A7:6A:B9:1A
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 2048-bit RSA key
    Version: 3
  3. SHA-1 핑거프린트를 저장하여 Adjust suite의 허용 리스트에 추가합니다.

Google Play Internal App Sharing

Google Play Internal App Sharing을 사용하는 경우, 허용 리스트에 등록하려면 조직의 SHA-1 인증서 핑거프린트와 내부 테스트 인증서 핑거프린트를 모두 Adjust에 전송해야 합니다.

핑거프린트 추출 방법:

  1. Google Play Console로 이동하여 로그인합니다.
  2. 앱을 선택합니다.
  3. 릴리스 관리 > 앱 릴리스 > 내부 앱 공유 관리 > 앱 인증서 를 선택합니다.
  4. 내부 테스트 인증서 와 조직의 키스토어 모두에 대한 SHA-1 인증서 핑거프린트 를 저장 하여 Adjust suite의 허용 리스트에 추가합니다.

Google Play App Signing에서

Google Play App Signing을 사용하는 경우, 허용 리스트에 등록하려면 조직의 SHA-1 인증서 핑거프린트와 내부 테스트 인증서 핑거프린트를 모두 Adjust에 전송해야 합니다.

핑거프린트 추출 방법:

  1. Google Play Console로 이동하여 로그인합니다.
  2. 앱을 선택합니다.
  3. 릴리스 관리 > 앱 서명(App Signing) 을 선택합니다.
  4. 앱 서명 인증서 와 인증서 업로드 모두에 대한 SHA-1 인증 핑거프린트 를 저장하여 Adjust에 전송합니다.

Huawei AppGallery App Signing 제공

Huawei AppGallery App Signing을 사용하는 경우, 허용 리스트에 등록하려면 조직의 SHA-1 인증서 핑거프린트와 내부 테스트 인증서 핑거프린트를 모두 Adjust에 전송해야 합니다.

참고:

Huawei AppGallery의 자체 서명 인증서를 사용하는 경우 , 키스토어에서 인증서 핑거프린트 검색을 위한 설명서를 참조하시기 바랍니다.

핑거프린트 추출 방법:

  1. AppGallery Connect의 앱 서명 페이지로 이동하여 앱 서명 인증서(certificate.pem)를 다운로드합니다.
  1. 인증서 다운로드가 완료되면 다음 명령어를 실행하여 인증서의 SHA-1 핑거프린트를 출력합니다.

    openssl x509 -fingerprint -in certificate.pem -noout -SHA1

    결과는 다음과 같습니다.

    SHA1 Fingerprint=C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
  2. Adjust suite의 허용 리스트에 추가할 핑거프린트를 저장합니다.

Adjust의 허용 리스트에 디지털 인증서 핑거프린트를 추가합니다.

참고:

사용하고자 하는 모든 인증서 핑거프린트를 Adjust suite에 추가하시기 바랍니다. 이는 디버그 버전과 각기 다른 스토어의 버전을 포함할 수 있습니다.

인증서 핑거프린트를 받으면 다음을 수행하여 이를 허용 리스트에 추가합니다.

  1. AppView에서 앱을 선택하여 앱 상세 화면을 엽니다.
  2. Protection 탭을 선택합니다.
  3. 의심되는 설치 섹션의 편집 버튼()를 선택합니다.
  4. Android 핑거프린팅 섹션에서 새 핑거프린트 를 선택합니다.
  5. 나타나는 텍스트 박스에 SHA-1 핑거프린트를 붙여넣기 합니다.
  6. 추가 를 선택합니다.

이제 끝입니다! 이제 핑거프린트가 앱에 허용 리스트에 추가되었습니다.

앱 테스트

Adjust 테스팅 콘솔 을 사용하여 서명 라이브러리가 앱에 연동되었는지 확인할 수 있습니다.

중요:

Adjust SDK가 Sandbox 모드 에서 작동하는지 확인하시기 바랍니다.

Signature 라이브러리 연동 테스트 방법:

  1. 설치 정보가 전송될 수 있도록 테스트 기기에서 앱을 완전히 삭제하시기 바랍니다.

  2. 테스팅 콘솔을 사용하여 해당 기기의 정보를 삭제하시기 바랍니다. 앱 토큰과 Adjust InSights 앱( iOSAndroid 에서 이용 가능)에서 얻은 광고 ID를 전달하여 forget_device 엔드포인트를 사용할 수도 있습니다. 다음의 광고 ID 또한 사용이 가능합니다: adid, android_id, gps_adid, idfa, idfv, imei, oaid.

    콜은 다음과 같습니다.

    curl -X POST 'https://app.adjust.com/forget_device?app_token={yourAppToken}&id={adid}'
  3. 테이스팅 콘솔에서 기기를 삭제한 뒤 테스트 기기에 앱을 설치하고 실행하여 설치 정보를 Adjust 에 전송합니다.

  4. 설치 이벤트 정보를 가져오기 위해 테스팅 콘솔에 테스트 기기의 광고 ID를 입력합니다. 다음을 확인하시기 바랍니다.

    1. SignatureVerificationResult 필드는 Valid Signature의 값을 보여야 합니다.
    2. SignatureVersion 필드는 3의 값을 보여야 합니다.

이러한 필드가 있고 올바른 정보를 포함하고 있다면 서명 라이브러리가 성공적으로 연동된 것입니다. 필드에 다른 값이 표시되는 경우, 연동 단계를 다시 검토하거나 support@adjust.com에 연락하시기 바랍니다.

이제 끝입니다! 서명 라이브러리가 앱에 성공적으로 연동되었습니다. 2개의 어트리뷰션 윈도우가 지난 후에는 SDK 서명 검증을 적용 하여 Adjust가 서명된 요청만 수락하도록 할 수 있습니다.