在一个现有的项目扩展多渠道,考虑到以后的维护,尽量还是保持一个xcodeProject。并可以较容易的用git进行迭代管理。
渠道包的需求:
1,修改配置(证书,bundleID,等等)
2,修改字符串(如推广文本,公司名称等)
3,修改代码逻辑
4,修改icon,图片图标,配色等资源
一,分渠道配置
Xcode->targets->右键主target->Duplicate,即可复制一份配置,可以将证书,bundleID等改为渠道要求的内容
二,分渠道适配字符串
1,swift中的条件编译:
OC中,可以用宏定义加#if,#else,#elif, #endif来为不同渠道进行条件编译。Swift中也可以实现:
需要在xcode新建的target中设置:
选中新建的target,在这几处添加条件编译需要判断的宏。注意和oc不同的是,不能给复制
比如“channl1 = xxx”是不可以的
然后代码中就可以条件编译了了:
#if CHANNEL1
let cl_APPID = "xxxx"
let cl_needCheck1 = false
let cl_Appname = "appName1"
let cl_Company = "Company1"
#elseif CHANNEL2
let cl_APPID = "xxxx"
let cl_needCheck1 = false
let cl_Appname = "appName2"
let cl_Company = "Company2"
#else
let cl_APPID = "xxxxxx"
let cl_needCheck1 = true
let cl_Appname = "appName3"
let cl_Company = "Company3"
#endif
这样就可以实现分渠道适配不同字符串,以及在代码中增加逻辑来进行功能适配:
label.text = cl_Company
....
func check(){
if cl_needCheck1{
//do something
}
}
三,分渠道使用资源文件
一般工程里面都是会用Assets包来管理图片,颜色等资源文件
我们只需要在文件目录中New File->Asset Catalog新创建一个资源包,并选中,在最右边Target Menbership中选定生效的target,就可以分渠道使用不同资源包了。