创建 Android、iOS 打包服务器

2016-10-14 09:10:06 +08:00
 zongren
我们公司有个项目,需要根据不同的客户快速打包( apk 、 ipa ),然后上传市场,请问有什么好的解决办法吗
目前想到的办法是搭建内部服务器( macOS ),客服输入客户的相关信息(包名,第三方应用 App Key ,图标等),然后复制一份代码并修改(字符串匹配),调用命令行打包工具,客服手动上传 apk 、 ipa 到市场
主要复制代码并修改这一步
5929 次点击
所在节点    程序员
27 条回复
0x5e
2016-10-14 09:39:46 +08:00
可以把配置放在一份 plist 文件里,和图片资源一样只是替换文件,尽量不改代码
murmur
2016-10-14 09:40:06 +08:00
我们用的 cordova 30 多个发布版(没办法。。虽然是一个东西,但是用户要求自己的 logo 乱七八糟一堆 图标什么的,然后 bundle Id 也一堆,乱七八糟 provision 什么)
只能改总配置 cordova 重新生成项目
另外 xcode 的脑残工程格式绝对不是人能理解的 一层套一层 如果你只是认为每个文件都有一个 uuid 就错了 他那个嵌套的层级关系恶心到你想吐 同样的东西你不知道要改几次
grayon
2016-10-14 09:42:08 +08:00
jenkins 持续集成环境
zongren
2016-10-14 09:43:46 +08:00
@0x5e 你是说需要用到这些信息的时候,用代码读取 plist 吗
zongren
2016-10-14 09:43:57 +08:00
@grayon 好的,我会了解一下
zongren
2016-10-14 09:44:10 +08:00
@murmur 你们是人工改吗
murmur
2016-10-14 09:45:37 +08:00
@zongren 写了个 nodejs 脚本去编辑这些信息 本来是想挂钩 cordova 的几个步骤的 后来发现有些东西光挂钩做不到 干脆就直接在 build 前全改好了
zongren
2016-10-14 09:48:52 +08:00
@murmur 是一个一个文件替换字符串吗
0x5e
2016-10-14 09:49:07 +08:00
@zongren 是的,这样还有个好处,其实不用再编译了,把 ipa 解压,替换资源文件重新签名就可以了。。
hellboys
2016-10-14 09:50:49 +08:00
建立不同的 Configuration, Project-UserA.xcconfig,Project-UserB.xcconfig

https://github.com/facebook/pop/tree/master/Configuration/Projects
zongren
2016-10-14 09:55:16 +08:00
@0x5e 这个挺好,能解决第三方配置的修改问题
holmesabc
2016-10-14 09:56:36 +08:00
我是用 jenkins ,打 Android
配合各种 Bash 脚本,偶尔写几个专用的命令行小工具。
sed 来修改 gradle 参数等。

jenkins 还自带 API ,完全也可自己封个后台给客户
chmlai
2016-10-14 10:13:59 +08:00
fastlane
LancerXin
2016-10-14 10:15:09 +08:00
docker+jenkins 比较好,有时候需要编译多个环境版本,环境变量需要隔离,配置比较麻烦,直接用 docker 隔离省事很多,以后迁移和方便
zongren
2016-10-14 11:00:22 +08:00
@holmesabc
@LancerXin
@chmlai
多谢回复,正在了解
xiubin
2016-10-14 11:23:01 +08:00
我之前做过一次,把不同的写成配置文件,编译之前用脚本修改
zongren
2016-10-14 11:34:57 +08:00
@hellboys 不太清楚怎么用,文件中定义的变量是作为宏吗
agassi_yzh
2016-10-14 11:41:51 +08:00
jenkins + Fastlane
coagent
2016-10-14 12:46:48 +08:00
我们 iOS 打包是 fastlane, Android 是 Gradle ,全部配置到 Jenkins 里去,内测用 Fir.im, Bugly ,在 Jenkins 里有多个 Project, 调不同的代码分支,该分支有代码更新自动打包,测试人员通过 fir.im, bugly 二维码下载 APP 安装。线上发布走 master 分支,手动触发打包。
zongren
2016-10-14 12:47:18 +08:00
@coagent 多谢回复!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/312682

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX