打包工具3.0 使用说明

一、产品介绍

掌趣打包工具是一款专门解决游戏接入掌趣&渠道SDK的自动化本地出包工具,一次接入,多渠道批量出包,生成的apk包和ipa包完全符合三方渠道上线要求,有效提升游戏开发者的研发、测试效率。打包同时进行动态静态检测,规避因缺少参数或配置文件导致的问题。打包过程中对核心文件进行加固和加密,让游戏有保障更安全。

掌趣打包工具依赖技术支撑中心DEV运营管理平台进行渠道参数配置,需要登录平台账号使用。

二、产品概要

1. 系统支持

打包工具支持 Windows和Mac系统:

  • Windows系统:支持Android、Windows打包;
  • Mac系统:支持Android、iOS、Windows打包。

2. 渠道支持

  • 安卓(国内)支持渠道
    支持OPPO、Vivo、华为、小米、应用宝、360游戏、3G门户、37玩、机锋、PPS、UC、安拓无限、安智、百度移动游戏、暴风影音、步步高、当乐、多玩、金立、酷派、联想、泡椒、搜狗、豌豆荚、丫丫玩、应用汇、优酷、HTC、4399、步步高、PPTV、迅雷、酷派、魅族、畅玩、靠谱助手、XY助手、泡椒网、滴滴打车、乐视手机应用商店、今日头条、虫虫游戏、安趣网、快用助手、叉叉助手等渠道。

  • 安卓(海外)支持渠道
    Googleplay、华为、三星、Onestore、掌趣官网。

  • iOS支持渠道
    支持Appstore、91、PP、快用、同步推、海马助手、i苹果、XY助手、iTools、爱思助手、叉叉助手、多多助手、乐8苹果助手等渠道。

3. 环境要求

  • Windows系统:win7 win10 或 xp,已内置环境;
  • Mac系统:10.11及以上,ipa出包需要xcode环境(>=xcode7);
  • Mac需要配置oracle jdk:jdk 1.8 (>= u291),若默认 jdk 版本不同于 1.8,可在 ~/setApEnv.sh 中进行设置,工具会自动引入。

三、功能介绍

1. 打包准备

1.1 使用条件

a. 联系技术平台申请产品权限,开通账号(DEV运营管理平台账号),用于登陆打包工具

b. 游戏运营在DEV运营管理平台完成渠道添加和渠道相关参数配置

第一步:游戏基本配置->渠道配置->添加渠道

第二步:游戏基本配置->渠道列表->点击渠道名称->配置对应参数

1.2 打包工具安装

a. DEV官网下载打包工具zip资源文件
Mac版下载:https://dev.zq11.cn/t3/355/5936/1500009778.html
Windows版下载:https://dev.zq11.cn/t3/355/5936/1500009776.html

b. 解压后,Windows系统点击autopacking.exe,Mac系统点击AutoPacking。或者在DEV管理后台右上角“打包工具”入口启动进入。

c. Mac安装注意
初次安装会提示无法安装,如下图:

应用程序->系统偏好设置->安全性与隐私->通用,将应用程序的权限改为“任何来源”,如下图:

2. 打包配置

2.1 安卓签名配置

  • 在游戏包签名时,没有上传安卓密钥文件,会使用掌趣默认签名文件,如需要配置则点击右上角-设置。

2.2 iOS证书配置

  • 需配置iOS证书文件(.cer/.p12)和授权文件(. mobileprovision);
  • 注意:证书文件与授权文件是一一对应的。

2.3 输出路径配置

a. Windows环境:打包工具打出的游戏包支持配置输出路径,如果不选择会输出到默认路径下,即E:/autopacking/output/;
b. Mac环境:默认路径为/Users/ourpalm/Documents/AutoPacking/output/
c. 支持手动配置:右上角设置-输出路径-配置。

2.4 查看日志log文件

a. Mac系统log查看路径:Documents->AutoPacking->logs->对应日期的日志

b. Windows系统log查看路径:电脑E盘->autopacking3->logs->对应日期的日志

3. 打包流程

a. 产品层级关系:产品->母包->母包版本->渠道包;
b. 打包任务参数:渠道参数,母包信息,渠道配置文件;
c. 打包操作流程:创建游戏->配置渠道参数->上传母包->母包参数检测->选择渠道打包->导入配置文件&整合SDK资源->包体检测->发布&测试;
d. 打包处理流程:执行任务->打包准备(清缓存/读取配置/合并SDK资源)->反编译APK->回编APK->加固->签名->静态动态检测->输出结果。

4. 打包操作

4.1 上传母包

  • 入口:打包管理->母包管理->上传母包;
  • Android上传apk母包;iOS上传Xcode工程;Windows上传zip压缩文件;
  • 注意:此处上传的游戏工程为接入掌趣SDK,并能成功生成ipa或apk。

4.2 母包检测

上传成功后进行母包检测,自动从DEV管理运营平台获取参数配置文件(.dat为后缀名)打进包内,并对文件进行解析(iOS和拳皇产品需要运营手动提供)。

4.3 母包列表

a. 查看
点击后跳转到“渠道包管理”页面,并筛选出对应版本的全部渠道包。

b. 修改
点击后支持重新上传母包,适用于同版本母包有更新。

c. 删除
支持从列表删除该条数据,删除后没办法再打对应版本的渠道包。

4.4 渠道打包

a.入口
打包管理->渠道包管理->渠道打包

b.渠道打包
选择平台(iOS需要上传证书授权文件);选择母包版本(默认为最新上传且检测通过);
导入参数(默认在线下载,但拳皇,饥饿鲨产品需要导入配置文件);
选择渠道打对应渠道包,可同时选择多个渠道,建议小于5个。

c.修改manifest文件
右上角设置里“修改manifest”开关打开后(默认关闭),渠道打包时支持修改所选渠道的manifest文件内容,一般用于特殊渠道。
若产品无修改manifest需求,设置里开关始终保持关闭即可。

d.导入SDK
右上角设置里“导入SDK”开关打开后(默认关闭),渠道打包时支持手动导入SDK,一般用于渠道SDK插件有更新,为了不影响线上,手动导入便于平台内部测试。
注意:此时渠道只能单选。

e.出包模式
海外产品(非简体中文语言)支持选择出包模式,默认APK模式。如需选择AAB模式,应谷歌要求需要上传JSON文件(必传);
JSON文件编写详见AAB出包说明文档
若未提供JSON文件配置,将会把所有资源打入 base pack 中,若大小超过 150M,工具会提示错误。

f.包体检测
包体检测开关打开,打包完成后并进行检测(视情况打开,打开后打包时间有所增加);
检测未通过,结果展示在“日志-包体检测日志”中;
检测通过,编译生成游戏包,安卓生成apk/aab包,ios生成ipa包,存储在本地默认/配置的路径下;
和“工具管理-包体检测”功能一致,只是此处渠道打包+检测可一步完成。

4.5 渠道包列表

a. 重打包
适用于平台渠道插件更新,游戏母包/渠道包无变更前提下,点击重打包即可,不需要重新走上传母包-渠道打包流程。

b. 发布
打包成功,确定是最终包后,可发布到dev运营管理后台-游戏包管理,便于QA测试和版本维护。

c. 日志
打包失败,支持自助查看日志,有详细的原因。

d. 修改包名
安卓渠道打包完成后,支持修改包名,修改后会重新走打包流程。

e. 打包状态
打包排队:状态是“准备中”,等待打包;
打包进行中:状态是“进行中”,每秒钟刷新打包进度;
打包成功:存储在本地默认/自定义配置的路径下;
打包失败:点击“日志”查看打包失败原因,修改后视情况重新上传母包打渠道包。

4.6 渠道icon修改

打包工具3.0,统一在dev管理后台配置渠道icon,配置一次后,后续每次换包时不需要再逐个渠道修改icon,有需求去后台修改,不配置会默认读取母包里icon。

5. 工具管理

5.1 日志助手

连接Android设备进行日志查看,可根据包名选择查看的app日志信息;
点击”捕获”开始日志查看,并支持日志导出。

5.2 APK签名查询

导入Apk或者ipa进行包体签名解析。

5.3 包体检测

支持上传apk、ipa包体检测:
检测Android渠道包 apk中接入的sdk内容是否完整,资源是否有遗漏;
检测AppStore上线包配置是否完整,基于苹果审核机制对上传包体检测,提早发现问题,减少上传审核成本。

5.4 签名工具

支持上传安卓apk游戏包,上传签名文件,设置别名和密码,对包体重新签名,便于研发测试。

5.5 APK安装器

当手机设备与电脑连接成功后,支持上传本地安卓apk,aab后缀游戏包,通过工具安装到手机上。
注意:请到手机设置中打开[USB调试]功能,如已打开但未连接,请尝试插拔手机。

6. 右上角设置

a. 输出路径:默认在E:/autopacking/output/,支持自定义设置,设置一次后,后续出包都会放在此路径下。
b. 签名文件:仅限安卓,默认掌趣签名,支持设置自定义签名。
c. DEX加固:仅限安卓单机,默认关闭,打开后打包工具进行加固处理。
d. 手动导入SDK:默认关闭,在线下载SDK资源,打开后渠道打包时,需要手动导入SDK资源,便于平台内部测试。
e. 修改manifest:默认关闭,仅限安卓,打开后渠道打包时,支持针对所选渠道修改manifest文件内容,一般特殊渠道才会用。
f. 删除母包资源:默认关闭,不删除母包资源,如果电脑硬盘剩余空间较小,建议开启。开启后,每次打包都会删除母包资源,会影响同一母包打多个渠道包速度。

7. 打包工具更新

支持强更和非强更,非强更点击“稍后更新”,24h后会再次提醒。

8. 注意事项

a. 同一产品涉及多人打包时,需要关注本地电脑母包资源或渠道包资源是否存在,例如A上传的母包,B进行打包,则B一定会失败,因为B本地电脑不存在该母包资源;
b. 不同产品可并行打包,同产品是串行打包,需一个一个进行.

四、命令行打包

1. 账号申请

命令行打包账号比较特殊,为了研发打包机上代码安全考虑,需要提Ones任务联系平台申请专用账号。
申请之前,请填写在线表格,并找IT申请各项目的ourpalm邮箱,便于接收密码和用于找回密码。
备注:同项目(不区分发行地域)只需申请一个账号,例如:全民奇迹2欧美/东南亚/港台只需申请一个。

2. 环境配置

2.1 windows

已内置环境;

2.2 linux or mac

oracle jdk;jdk 1.8 (>= u291)
若默认 jdk 版本不同于 1.8,可在 ~/setApEnv.sh 中进行设置,工具会自动引入。

3. 操作说明

3.1 windows

  1. cd autopacking3
  2. .\commandLineVer.cmd packingConf.json

3.2 mac

  1. cd ~/Documents
  2. chmod -R +x AutoPacking
  3. cd AutoPacking/
  4. ./commandLineVer.sh packingConf.json

3.3 xcode 工程打包注意事项

调用 commandLineVer.sh 前需解锁钥匙串,否则会失败;
使用者可自行配置以下命令,每次终端会话时执行。

  1. security unlock-keychain -p ${PASSWORD}

3.4 packingConf.json

packingConf.json 为具体打包配置,格式与注释如下:

  1. {
  2. "account": "账密联系平台获取",
  3. "password": "",
  4. "apkConf": {
  5. "apkPath": "母包绝对路径",
  6. "outputPath": "可自定义输出目录路径;可选(默认在工具根目录 /output 下)",
  7. "packingConfig": [
  8. {
  9. "pCode": "41位产品编码;",
  10. "configPath": "可选;自定义使用离线配置文件;若使用此字段,pCode 不配置",
  11. "newPkgName": "可选;自定义包名;",
  12. "targetSdkVersion": "可选;自定义目标SDK版本;"
  13. }
  14. ],
  15. "type": "apk|aab,打包为 aab 时,需进行以下配置:",
  16. "aabConfigJsonPath": "打包为 aab 时,由此传入 pack assets 配置 json 路径",
  17. "isSignTypeDefault": "1|0, 1,默认签名;0,自定义签名;自定义签名需配置:",
  18. "signKeyPath": "自定义签名时,apk 或 aab 的签名路径",
  19. "signKeyPass": "自定义签名时,apk 或 aab 的签名密码",
  20. "signKeyAlias": "自定义签名时,apk 或 aab 的签名别名",
  21. "signKeyAliasPass": "自定义签名时,apk 或 aab 的签名别名密码"
  22. },
  23. "ipaConf": {
  24. "projPath": "ios 工程路径",
  25. "outputPath": "可自定义输出目录路径;可选",
  26. "packingConfig": [
  27. {
  28. "pCode": "必填",
  29. "certPath": "证书路径",
  30. "certPass": "证书密码,可为空",
  31. "mobileprovisionPath": "授权文件路径"
  32. }
  33. ]
  34. },
  35. "winConf": {
  36. "zipOrDirPath": "windows 母包路径(zip 或 目录)",
  37. "outputPath": "可自定义输出目录路径;可选",
  38. "packingConfig": [
  39. {"pCode": "必填"}
  40. ]
  41. }
  42. }

注意:
1、apkConf、ipaConf、winConf 字段,根据打包需求进行配置,若配置多个,仅按顺序生效一个;
2、packingConfig 中的 pCode configPath 仅配置一个即可,若配置多个,仅 pCode 生效。

3.5 pCode生成规则

pCode生成规则:服务器ID(serviceId)+渠道ID(channelId)+设备类型编码(deviceGroupId)+语言编码(localeId)
a. 服务器ID(serviceId):gsc运营管理平台-渠道配置-基础配置
b. 渠道ID(channelId):gsc运营管理平台-渠道配置-基础配置
c. 设备类型编码(deviceGroupId):安卓 0000;iOS 0002;Windows 0024
d. 语言编码(localeId):详见 https://dev.zq11.cn/t3/355/5933/1500006314.html
*上述信息均可在打包配置文件“ourpalm.cfg”里找到。

五、打包常见问题

1、apk 压缩失败;具体原因….apktool\framework\1.apk

(1)、原因

由于打包机使用不同打包工具,或其他apk编译反编译工具,系统写入了和打包工具不兼容的依赖项导致打包失败。

(2)、解决方案

移除不兼容的可重复生产的文件。
windows:
按键盘上 win+R 打开运行窗口输入cmd 回车,打开命令行。
或者win10以上系统,按键盘上win+X 打开快捷菜单,点击 终端(管理员) 或 PowerShell(管理员)。
复制如下命令 回车执行

  1. del /s /f /q %HomeDrive%%HomePath%\AppData\Local\apktool\framework\1.apk

Mac 或 Linux:
打开启动台(LaunchPad) 找到其他文件夹 打开终端(terminal)
复制如下命令 回车执行。

  1. rm ~/Library/apktool/framework/1.apk

执行完上述操作后,尝试重启打包工具重新打包。