安卓签名库集成

Adjust 的 SDK 签名库是 Adjust SDK 的一款独立插件,也就是说,您无需变更代码或改变在应用中使用 Adjust SDK 的方式,即可使用 SDK 签名库。安装插件后,Adjust SDK 发出的所有请求都将继续如常运行。

操作前须知

要将签名库集成到您的 Android 应用,请确保满足下列条件:

  • 正在使用的 Android API 为 21 或更高版本​ 。
  • 正在使用的 Adjust SDK 为 4.38.2 或更高版本​ 。
  • 如果您使用了 ProGuard,那么签名库和 Adjust SDK 须使用完全相同的 ProGuard 配置。

如何从 Signature V1 或 V2 库过渡

如果您之前使用的是 Signature v1 或 Signature v2,请先移除旧版本,然后再集成签名库库。 为此请进行下列操作:

  • 如果您之前已经集成了 Signature V1,请移除项目中所有会调用签名功能的代码。
  • 如果您之前已经集成了 Signature V2,请从您的项目中移除 Signature V2 库。

集成步骤

请按照下列步骤操作,将签名库集成入您的 Android 项目中。

  1. 从 GitHub 调取签名库内容。
  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 Studio 弹窗中选择 Sync Now​ ,立即同步变更。

一切就绪!签名库现已集成到您的项目中。请按照下一节说明的步骤操作,在 Adjust suite 中配置您的数字证书。

在 Adjust suite 中设置证书

将签名库集成到应用中后,Adjust SDK 向 Adjust 发送的所有请求都会带有签名。 Adjust SDK 还会向 Adjust 服务器发送相关信息,包括您的签名证书指纹。

证书指纹是证书中公开信息的加密哈希值,可以用来验证应用的真实性。

签名库无法验证证书指纹的真实性。请在 Adjust suite 中将指纹加入许可名单,这样,Adjust 才会认定包含指纹的请求真实,并接受这些请求。为此,您需要调取证书指纹,将其发送给 Adjust。

从密钥库获取证书指纹

如果您使用了自己的密钥库,或 Android Studio 为您生成了密钥库,则可以按下列步骤操作,提取证书指纹。

  1. 请找到您用于对 应用的发布版本​ 进行签名的密钥库文件 (.jks)。该密钥库必须是用来为发送到 Google Play 商店的发布版本签名的文件。如果您使用了不同的密钥库文件,那么 SDK 请求就会被拒绝。

  2. 运行以下指令,以列出密钥。请用您的信息替换尖括号中的内容。

    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 内部应用分享获取证书指纹

如果您使用的是 Google Play 内部应用分享,则需要将您所在机构的 SHA-1 证书指纹和内部测试证书指纹发送给 Adjust ,以将其加入许可名单。

要提取指纹,请按照下列步骤操作:

  1. 登录 Google Play Console
  2. 选择您的应用。
  3. 进入 版本管理 (Release management) —>应用发布 (App Releases) -> 管理内部应用分享 (Manage internal app sharing) -> 应用证书 (App certificates)
  4. 保存 内部测试证书​ 和您所在机构密钥库的 SHA-1 证书指纹​ ,将其添加入 Adjust suite 许可名单中

从 Google Play 应用签名获取证书指纹

如果您使用的是 Google Play 应用签名,则需要将所在机构的 SHA-1 证书指纹和内部测试证书指纹发送给 Adjust ,以将其加入许可名单。

要提取指纹,请按照下列步骤操作:

  1. 登录 Google Play Console
  2. 选择您的应用。
  3. 选择 版本管理 (Release management) > 应用签名 (App Signing)​ 。
  4. 保存 应用签名证书​ 和 上传证书​ 的 SHA-1 证书指纹,​ 并将两者都发送给 Adjust。

从 Huawei AppGallery 应用签名获取证书指纹

如果您使用的是 Huawei AppGallery 应用签名,则需要将所在机构的 SHA-1 证书指纹和内部测试证书指纹发送给 Adjust ,以将其加入许可名单。

请注意:

如果您在 Huawei AppGallery 中使用自己的签名证书,请按照从密钥库提取证书指纹的步骤操作。

要提取指纹,请按照下列步骤操作:

  1. 打开 AppGallery Connect,找到应用签名 (App Signing) 页面,下载应用签名证书 (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. 选择 数据保护​ 标签页。
  3. 点击 可疑安装​ 部分的 编辑​ 按钮 ()
  4. 找到 安卓指纹​ 部分,选择 新指纹​ 。
  5. 将复制好的 SHA-1 指纹粘贴入弹出的文本框中。
  6. 选择 添加​ 。

一切就绪!您的指纹现已加入应用许可名单。

进行应用测试

您可以使用 Adjust 测试控制台验证签名库是否已正确集成进应用。

重要提示:

请务必确保 Adjust SDK 处于 sandbox 模式​ 。

要测试您的签名库集成情况,请按照下列步骤操作。

  1. 从测试设备中完全删除应用,确保安装信息能被正确发送。

  2. 使用测试控制台遗忘设备,清除与该设备相关的所有信息。 您还可以发送从 Adjust InSights 应用 (已推出 iOS安卓 版) 中获得的应用识别码和广告 ID,以此使用 forget_device 终端。您可以使用以下任何广告 ID:adidandroid_idgps_adididfaidfvimeioaid

    调用看上去应该是这样的:

    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 获取支持。

一切就绪!签名库已成功集成到您的应用。等待两个归因窗口结束,即可执行 SDK 签名验证,确保 Adjust 只接受带有签名的请求。