使用场景
1. 同一个项目,一般会分不同环境:开发环境、测试环境、准生产、生产环境。 如果通过代码要每次修改配置,尤其上线是容易忽略配置修改,导致发错版。
2. 不同的项目,但是项目都类似、大同小异,大部分的代码可以共用,开发多个项目比较繁琐,更新迭代需要各个项目都要手动配置一遍。
多Target开发就能解决上述场景问题。
创建新的Target
创建新的target的有两种方法。
1 创建全新target
通过选择File->New->Target,选择一个target模板(通常选择Single View App)创建一个全新的target。创建全新的target会带有新的Appdelegate和main等文件。
2 复制当前target
在Targets中点击已有的Target,右键选择Duplicate可以复制生成一个**copy的新Target,并且在文件目录中生成对应的**copy-Info.plist文件。生成的target与被拷贝的target相似度很大,减少了过多的修改。通常为了减少后期的修改,我们也会首先在原有的Target中修改一些配置之后再Duplicate
点击Duplicate,会弹出选择框入下图,一般选中中间那个Duplicate Only(仅复制),默认选中是复制且过渡到iPad,根据项目需求进行选择。
选中Duplicate Only后如下图,Products会生成.app,文件目录里生产.plist,Targets里生成*** copy
下一步我们需要修改新target名称,plist文件名称
选择新的Target -- General,在identity ,选择新的plist,然后就可以修改相关配置:Bundle Identifier,display name等。 如下图
设置预编译宏:使用多Target是为了共用一部分代码,但是有些共用的文件在不同的Target下是有细微不同的,那么我们在具体实现的时候就需要作出区分。这里解决的方法是针对不同的Target定义宏。
选择一个target, build Settings -> 搜索macros,找到PreprocessorMacros分别在Debug和Release中设置TargetType,然后在代码中也通过判断TargetType区分不同target。
创建新的文件时,或者导入文件是,注意要勾选对应的target(根据业务需求)
cocoapods 支持多target
不同的target所引用的库可能不同,所以要做相应区分。
如果您希望多个目标共享相同的pod库,如下图
Podfile文件修改请参考http://guides.cocoapods.org/using/the-podfile.html