Flutter多环境打包中的三方相关配置(例如腾讯移动推送TPNS、腾讯实时音视频通话TRTC)

上篇文章介绍了Flutter多环境打包方案之一:flutter_flavorizr - 掘金 (juejin.cn),这篇文章将继续记录下多环境打包中第三方库的相关配置(Android相关)问题。

1. 多环境中配置文件的设置

在使用三方工具库时,可能会涉及到一些配置文件的存放,如腾讯移动推送,需要在android/app/目录下放置tpns-configs.json文件,该文件主要保存了TPNS中需要的一些版本号、开关及相关key等等。在多环境中,不同环境的id、key甚至时版本号都有可能不相同,所以需要我们对不同环境进行设置不同的配置文件,在打包时能够顺利读取到配置。

单环境中tpns-configs.json的放置位置 没有多环境的情况下tpns-configs.json的放置位置

多环境时,在使用了命令(flutter_flavorizr接入文章中的第3步)后,会自动生成env_dev、env_release等文件夹,这些文件夹的作用和app时同级别的,所以可以把在android/app/文件夹下的tpns-configs.json文件放置到对应环境的android/app/src/env_xxx文件夹中,并在对应的json文件中做相应的设置。

多环境中tpns-configs.json的放置位置 image.png

2. 多环境中build.gradle中配置信息的设置

比如在使用腾讯移动推送时,需要在android/app/build.gradle中进行相关配置

单环境中build.gradle中的相关配置 image.png

在多环境中,使用了命令之后(flutter_flavorizr接入文章中的第3步),同样会生成相应的环境配置(如下图),我们只需要在对应的env_xxx配置中加入对应的manifestPlaceholders即可。

多环境中build.gradle中的相关配置 image.png

- 结束

至此,在多环境中进行相关文件或者build.gradle的相关配置已经记录完毕,如果有其他类型的配置需要添加,也可以举一反三,根据上面的整体逻辑进行推测是否可以进行配置,比如看下是否有生成env_xxx相关的配置,然后再去相应的位置进行修改。