GitHub 地址:KJMoreTargetDemo
很多时候我们可能会有用户版和管理员版,但是他们之间很多代码通用,这是就可以采用这种方式去处理 同工程里面创建两个Target,然后通过判断Target来修改代码,这样都是基于同一套代码做修改,只是部分不相同的地方通过Target来添加不同代码,后期修改维护成本低
Github地址:https://github.com/yangKJ 简书地址:https://www.jianshu.com/u/c84c00476ab6 博客地址:https://blog.csdn.net/qq_34534179
#####一、创建两个Target ######1、拷贝一份新的Target
######2、修改不同Target对应的不同的 Scheme、info.plist等等数据 Build Settings当中Packaging设置info.plist路径
####二、为两个不同的应用添加不同的AppIcon和LaunchScreen.storyboard #####1、进入Assets.xcassets 右键创建不同的AppIcon
* 这边需要把两者都勾选上,否则会出现编译的不同Target的时候会获取不到资源的情况
#####2、创建不同的LaunchScreen.storyboard
######保存在相对应的Target当中
#####3、选择相对应的AppIcon和LaunchScreen.storyboard * KJMoreTargetDemo对应的AppIcon和LaunchScreen.storyboard
* KJMoreTargetDemo copy对应的AppIcon-2和LaunchScreen2.storyboard
#####4、选择不同的Target运行项目
####三、代码里面利用宏定义来区分不同的Traget #####1、在Bundle Setting里面设置一下Proprecessor Macros添加一份TARGET和TARGET2的参数来区分到底是那个Traget * KJMoreTargetDemo对应的Proprecessor Macros
* KJMoreTargetDemo copy对应的Proprecessor Macros
备注:TARGET 和 TARGET2 后面代码块里面会使用到
#####2、代码里面用上面的宏去判断代码块 解决需要不同处理方式,则用下面这一组宏
#if TARGET /// KJMoreTargetDemo当中的代码块实现 KJTargetViewController *vc = [KJTargetViewController new]; [self.navigationController pushViewController:vc animated:YES]; #elif TARGET2 /// KJMoreTargetDemo copy当中的代码块实现 KJTargetViewController2 *vc = [KJTargetViewController2 new]; [self.navigationController pushViewController:vc animated:YES]; #endif