§ APP打包
§ 版本包构建
一个完整的版本包由一个workspace文件夹和一个configuration文件夹构成:

§ configuration文件夹
放置你的配置文件,其中client.properties是主要的配置文件,配置说明如下
#入口页面路径
web/startUrl=workspace/fox/index.html
#设备回退键触发事件
web/backAction=javascript:fox.custom.logout()
#是否启用更新
version/updateEnabled=false
#版本服务器地址,可支持列表,以‘,’分割
version/address=http://192.144.128.218:9291
#版本服务器更新策略,选项问:fore:必须更新完成后才能进入,options:可选
version/updatePolicy=options
#APK更新任务[服务器APK目录,客户端APK本地目录] #服务器上的APK和客户端的APK打包证书需要一致
version/apkUpdateTasks=[update/app/apk,version/apk]
#更新任务,由服务器上的资源更新到本地资源
#参数含义:[服务器配置文件路径,客户端本地配置文件保存路径,是否需要重启(非必须参数,不填写默认为false)];
#多个更新任务可以用 ; 分隔 #fox为此工程名,是一种简写,写法等同于 [update/app/workspace/fox,workspace/fox]
version/updateTasks = [update/app/configuration/client.properties,configuration/client.properties,true];fox
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
§ workspace文件夹
需要将你的web工程资源放在这个文件夹中,例如您的工程名为fox,则创建出来的版本包为以下结构:
|-- configuration 配置文件
| |-- client.properties
|-- workspace 工程资源
|-- fox
|-- index.html
`-- static
2
3
4
5
6
7
PS:初始版本包的示例一般会在源代码包的version文件夹下
§ 打包步骤
§ 步骤一
选中workspace和configuration目录,并使用zip方式压缩这两个目录,切记这两个目录是是顶层目录,他们是不允许有父亲目录的。
§ 步骤二
把步骤一产生的压缩包,改名app对应的包名,包名可以在android工程中的app模块中的build.gradle文件获取

§ 步骤三
把初始版本包压缩包,放入android工程中app模块下assets/version目录下。

§ 步骤四
选择android studio顶部菜单Build->Generate Signed Bundle/APK,并打开向导选择APK,点击next

§ 步骤五
选择已有的签名文件或创建新签名文件,点击next

§ 步骤六
选择需要打包的package,并勾上签名版本,点击finish,打包完成后IDE会弹出提示,并提示apk所在目录。

§ 多渠道打包说明
在我们开发过程中,有时同一份代码通常需要打包几个APK,如开发、UAT和生产。如果同时三份代码,那么维护就比较麻烦了。多渠道打包的办法就能很好的解决这个问题。具体的办法是在app模块中的build.gradle文件中的productFlavors节点中添加配置,如下分别有pad_demo和phone_demo两个flavor,我们在打包的过程中选择所需的flavor进行打包即可。
productFlavors {
pad_demo {
applicationId "fox.app.pad"
versionCode 1
versionName "1.0.0"
minSdkVersion 21
targetSdkVersion 22
manifestPlaceholders = [app_name: "移动平台(PAD)", icon: "@mipmap/ic_launcher_fox",bdkey:"ixVXFlhEFLSAXtA2IVeNF0CNw2chONRQ",screenOrientation:"landscape"]
ndk {
abiFilters 'armeabi-v7a'
}
flavorDimensions "versionCode"
}
phone_demo {
applicationId "fox.app.phone"
versionCode 2
versionName "1.0.1"
minSdkVersion 21
targetSdkVersion 22
manifestPlaceholders = [app_name: "移动平台", icon: "@mipmap/ic_launcher_fox",bdkey:"ixVXFlhEFLSAXtA2IVeNF0CNw2chONRQ",screenOrientation:"portrait"]
ndk {
abiFilters 'armeabi-v7a'
}
flavorDimensions "versionCode"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
← 目录结构 使用Debug工具调试 →