每次发版都手动加固、手动签名、手动测试——这种石器时代的流程不适合任何规模化团队。加固应该是自动化流水线的一个环节。

加固集成到CI/CD的前提

要让加固无缝融入自动化流水线,以易盾加固工具为例,需满足三个条件:

支持命令行模式:能在无图形界面的CI/CD环境中运行,支持参数化配置。

构建耗时可控:单次加固的时间不应该成为流水线的瓶颈。在同等防护强度下,加固耗时建议控制在2分钟以内。

配置可版本化管理:加固策略最好能通过配置文件管理——可以提交到Git,随代码一起做版本管理。

Jenkins集成示例

基本思路是在构建产出APK后,增加一个加固步骤:

  1. Gradle构建 → 产出release APK
  2. 加固命令行 → 对APK执行加固
  3. 签名 → 对加固后的APK重签名
  4. 归档 → 将最终APK上传到制品库

脚本中需要配置AppKey(从后台获取)和签名证书路径(建议使用Jenkins的Credentials插件管理敏感信息)。

GitLab CI集成示例

思路和Jenkins一致,语法适配GitLab CI的YAML格式。

CI/CD集成要点

1. 加固后重新签名

加固修改了APK内容,必须重新签名。建议在CI/CD中配置签名证书作为Secret变量,不要在脚本中明文存储。

2. 构建超时设置

加固通常耗时1-2分钟,设置合理的超时时间(如5分钟),避免因加固工具异常导致流水线永久挂起。

3. 版本锁定

在CI/CD脚本中明确加固工具的版本,避免自动更新导致构建行为不一致。

4. 失败处理

加固失败时,流水线应标记为FAILED并发出通知。不要在生产构建中静默跳过加固步骤。

5. 增量构建

日常开发调试构建不需要加固,只在发布构建中开启加固。通过CI/CD的触发条件来控制。


申请试用可访问易盾应用加固产品页

Logo

网易易盾是国内领先的数字内容风控服务商,依托网易二十余年的先进技术和一线实践经验沉淀,为客户提供专业可靠的安全服务,涵盖内容安全、业务安全、应用安全、安全专家服务四大领域,全方位保障客户业务合规、稳健和安全运营。

更多推荐