§ APP打包

§ 版本包构建

一个完整的版本包由一个workspace文件夹和一个configuration文件夹构成: version目录

§ 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
1
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

1
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 向导2

§ 步骤六

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

向导3

§ 多渠道打包说明

在我们开发过程中,有时同一份代码通常需要打包几个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"
        }
    }
1
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
最后更新于: 4/19/2022, 5:54:05 PM