如何管理上百个渠道包?

2017-07-26  本文已影响18人  拿破轮胎

手上有个项目要打一百多个渠道包,每个包的icon,启动图名字等都不一样。怎么破?

Target的失败尝试

最初,我采取了建target的办法处理。常规来说,这也是大家推荐的办法,但当建到30个Target后,Xcode操作变得越来越卡,并且每次添加一个新的类,都要勾选这几十个target确实很烦人,也容易遗漏,看来不是太好的方案~~

思考

一度陷入僵局后开始思考还有什么可以利用的。

1.脚本?

这时候没准大家想到了用脚本去控制打包。那调试的时候又不好针对指定渠道包测试,有bug难以处理最终等弊端。

2.新建工程,把公用部分打成fremawork?

这是个疯狂的想法,虽然解决了多target卡的问题,但规模庞大难以维护

3.新建工程,把公用部分弄成子工程?

和方法二一样···

回归Xcode

Xcode是一个很强大的工具,其中集成了很多可配置的元素。所以我相信利用Xcode自带的功能就能解决这个问题,所以开始想到了Xcode的配置文件.xcconfig文件

xcconfig

xcconfig是Xcode的一个工程配置文件,可以作为的一个补充配置Xcode,我们常用的Cocoapods就是用这东西来链接生成的静态库。大概长这样

Xcode中在这里选择

所以,我的思路是

给每个渠道包新建一个xcconfig文件,用来管理APP名字,ShareSDK key等一些需要特殊处理的地方。 APPIcon和启动图的管理就在Xcode的BuildPhases里的添加RunScript,进行拷贝替换。

最终就成了这样子

每次想调试那个渠道的工程也简单,只要把

Configurations里的debug项改成先要调试的config就行了

打包时就直接用脚本,通过--config选项能够指定加载哪个渠道的配置,例如:

xcodebuild -target "tuangouproject" -configuration Release -sdk iphoneos build -xcconfig "Build Config/$name.xcconfig" 1>/dev/null

打包脚本无非就是遍历整个配置文件夹,挨个打包就行了,一百个渠道部刷刷刷就打完了,完全没压力

整个世界清净··

本帖只提供方案,并不是一个基础教程,所以xconfig的新建过程没详细写,如果你还不知道xcconfig怎么用,可以先参考这里:Using xcconfig files for your XCode Project

上一篇下一篇

猜你喜欢

热点阅读