adjust-icon

SDK Signature(SDK 서명) 라이브러리 연동

Adjust의 SDK Signature(SDK 서명) 라이브러리는 Adjust SDK의 독립형 플러그인으로 설계되었습니다. 따라서 코드를 변경하거나 앱에서 Adjust SDK를 사용하는 방법을 변경할 필요가 없습니다. 플러그인 설치 후에는 Adjust SDK에서 생성된 모든 요청이 계속 정상적으로 작동합니다.

시작에 앞서

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

  • 사용 중인 Android API 버전이 21 이상 이어야 합니다.
  • 사용 중인 Adjust SDK 버전이 4.37.2 이상 이어야 합니다.
  • Proguard를 사용하는 경우 서명 라이브러리와 Adjust SDK에서 동일한 Proguard 구성을 사용해야 합니다.

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

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

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

연동 단계

다음 단계에 따라 Unity 프로젝트에서 서명 라이브러리를 연동합니다.

  1. GitHub에서 서명 라이브러리 콘텐츠를 불러옵니다.
  2. Android 아카이브(.aar) 파일을 통합 프로젝트의 Assets/Adjust/Android 디렉터리에 배치합니다.
  3. iOS 정적 프레임워크(.a)를 통합 프로젝트의 Assets/Adjust/iOS 디렉터리에 배치합니다.

이제 끝입니다! 서명 라이브러리가 프로젝트에 연동되었습니다. 다음 섹션의 단계에 따라 디지털 인증서를 설정합니다.

Adjust suite에서 인증서 설정

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

인증서의 핑거프린트는 인증서 내의 공개 정보를 암호화한 해시입니다. 앱의 인증 여부를 검증하는 데 사용할 수 있습니다.

서명 라이브러리는 인증서 핑거프린트의 인증 여부를 검증할 수 없습니다. 핑거프린트가 포함된 요청을 Adjust가 인증된 것으로 수락하게 하려면 핑거프린트를 Adjust Suite의 허용 리스트에 추가해야 합니다. 이를 위해 인증서의 핑거프린트를 가져와 Adjust에 전송합니다.

keystore에서

자체 키스토어를 사용하거나 Android Studio에서 키스토어가 생성된 경우 다음 단계에 따라 인증서의 핑거프린트를 가져올 수 있습니다.

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

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

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

    이 명령은 키스토어 암호를 요구합니다. 키스토어를 생성할 때 정의한 암호입니다.

    최종 출력 결과는 다음과 같습니다.

    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. 릴리스 관리 —> 앱 릴리스 —> Internal App Sharing(내부 앱 공유) 관리 > 앱 인증서 를 차례로 선택합니다.
  4. 내부 테스트 인증서 와 조직의 키스토어 모두에 대한 SHA-1 인증서 핑거프린트 를 저장 하여 Adjust suite의 허용 리스트에 추가합니다.

Google Play Console의 인증서 페이지 스크린샷

Google Play App Signing 사용

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

핑거프린트를 추출하는 방법은 다음과 같습니다.

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

Google Play Console의 앱 서명 페이지 스크린샷

Huawei AppGallery App Signing 사용

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

핑거프린트를 추출하는 방법은 다음과 같습니다.

  1. AppGallery Connect의 앱 서명 페이지에서 앱 서명 인증서(certificate.pem)를 다운로드합니다.

AppGallery Connect의 앱 서명 페이지 스크린샷

  1. 인증서를 다운로드한 후에 다음 명령을 실행하여 인증서의 SHA-1 핑거프린트를 출력합니다.

    Terminal window
    $ 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의 허용 리스트에 추가

인증서의 핑거프린트를 확보한 후에 다음 단계에 따라 핑거프린트를 허용 리스트에 추가합니다.

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

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

앱 테스트

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

다음과 같이 서명 라이브러리 연동을 테스트합니다.

  1. 설치 정보가 전송되도록 테스트 기기에서 앱을 완전히 삭제합니다.

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

    호출은 다음과 같습니다.

    Terminal window
    $ 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에 연락하시기 바랍니다.

이제 끝입니다! Signature 라이브러리가 앱에 성공적으로 연동되었습니다. 어트리뷰션 윈도우 2개가 완료되면 SDK Signature(SDK 서명) 검증을 시행하여 서명된 요청만 Adjust에서 수락하도록 할 수 있습니다.

문제 해결

Unknown CPU Architecture in AdjustSigSdk.a

Unity Editor 2018 이상 버전에서 Unknown CPU Architecture 가 포함된 오류 메시지가 표시될 수 있습니다. 이 오류 메시지는 Unity Editor가 iOS 정적 프레임워크(.a)를 iOS 외 플랫폼에 적용하려고 시도할 때 나타납니다. 이 문제를 해결하려면 AdjustSigSdk.a 파일을 선택한 다음 Import Settings 메뉴에서 iOS 를 제외한 모든 플랫폼의 선택을 해제합니다.

Unity Editor의 AdjustSdk Import Settings 스크린샷