多个 release 不是不同版本,而是不同客户
比如,main 程序里连的服务器地址不同,总之区别就是一两行字符串的值
现在我们做的是,在一个分支开发(可能并行开几个 feature 分支)
然后完成后 merge 到其他几个 release 分支各自发布
但如果几个客户还好说,如果以后客户多了,这 git 岂不是要开花了
不知道各位有没有什么好的实践分享下
1
msg7086 2022-06-27 06:23:11 +08:00 1
有没有一种可能,放在配置文件里。
|
2
HeapOverflow 2022-06-27 07:25:34 +08:00 via iPhone
这个难道不应该用配置文件吗….
|
3
wanacry 2022-06-27 07:27:24 +08:00 via iPhone 1
我的意思是:有没有有这么一种可能🤔
|
4
arch9999 2022-06-27 07:37:38 +08:00 1
目前来说,你是错的,但是过一段时间之后,你会发现楼上几位是错的。
|
5
runningowl OP 额,谢谢,忘了说,是个安卓 app ,不上市场
其实本来默认就是空的,让大家装好 app 自己配,然后客户觉得费事,老板就让给每个客户配好 |
6
Chad0000 2022-06-27 08:18:29 +08:00 via iPhone
那其实你不需要不同分支啊,你只需要不同配置文件,每个客户打包使用不同的就行了。
|
7
estk 2022-06-27 08:20:28 +08:00 via Android
那就根据域名来区分,判断不同域名就连不同服务器地址
|
8
estk 2022-06-27 08:20:54 +08:00 via Android
@runningowl
不好意思,那就根据包名连不同服务器 |
9
onetown 2022-06-27 09:06:43 +08:00 1
Android 可以在 build 里设置 product flavor , 你可以根据不同的 flavor 来设置资源文件里的值, 你可以搜索 Android product flavor 相关的关键字, 不知道这个是不是 OP 想要的
比如 productFlavors { app1 { resValue "string", "app_name", "App 1" resValue "string", "api_url", "app1.xxx.com/v1/api" } app2 { resValue "string", "app_name", "App 2" resValue "string", "api_url", "app2.xxx.com/v1/api" } } 也可以根据 Flavor 产生不同的包名 applicationVariants.all { variant -> variant.outputs.all { output -> def SEP = "_" def flavor = variant.productFlavors[0].name def buildType = variant.buildType.name def version = variant.versionName def date = new Date(); def formattedDate = date.format('yyMMdd_HHmm') def apkName = "android_" + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk" outputFileName = new File(apkName) } } |
12
Harry 2022-06-27 09:38:45 +08:00 via iPhone
|
13
dzdh 2022-06-27 09:43:24 +08:00
|
14
maichael 2022-06-27 09:44:30 +08:00
CI/CD 配置好,只要不大幅度涉及业务逻辑层的改动,怎么搞都行。
|
15
runningowl OP |