Target 方式的好处是解决多款类似产品的开发效率。
一个Target可以认为一个产品,可以分别配置不同的产品。比如bundle id.
这种方式不会增加最终包的体积,只会适当增加project的大小,同时不会影响编译时间,因为Xcode同时只能编译一个project,一个project只会编译关联它的资源文件。
注意方式:
1、当增加新类或文件时,考虑将适配的target上打上勾,让对应target可以编译。
2、如果一个文件代码量很大,但是根据不同的项目有细微差别,可以使用的方式:
a、通过在build setting里设置项目宏。比如qixi
加入 BUILD_QIXI
代码:
#ifdef BUILD_QIXI
// 七喜的代码可以特殊处理一下
NSLog(@"This is QIXI project.");
#else
#endif
b、根据产品需求提取特征,比如不同的产品界面相同只是资源不同(图片,字符串),
可以写一个类使用工厂模式处理。比如:
- (NSString*)title:(NSInteger)projectType
{
switch (projectType) {
case QIXI:
{
return "七喜";
}
break;
default:
break;
}
return "可乐";
}
3、当不同产品代码区分很大时,可以新设置文件。比如不同的产品排行榜界面不同:
可以新建三个文件
GGRankingListController_QIXI.m
GGRankingListController_KELE.m
GGRankingListController_APPLE.m
暂时想到这么多,开发过程中可以随时沟通~