前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用多个Target去管理项目版本环境

使用多个Target去管理项目版本环境

作者头像
xiangzhihong
发布2018-01-26 14:08:17
5950
发布2018-01-26 14:08:17
举报
文章被收录于专栏:向治洪向治洪

在实际开发中,为了保证所开发的产品能够尽量完美上线,在上线前会特意测试几轮,保证所开发的应用没有问题。据此,在实际的开发过程中,往往需要区分测试环境和线上环境,在Android开发中,可以通过gradle脚本来识别,并在代码中体现出来。 在ios开发中,如果一个包需要同时包含debug和线上的relase环境,则需要打两个.a文件,然后合并在一起。

除了上述情况之外,有一些App还分为专业版与普通版,而专业版与普通版的区别在于一些功能的有无,对于这样的需求,难道要专门去独立出来两个项目吗?如果要是专门去独立出来两个项目,那以后迭代的话,两个项目都得同时去迭代,工作量是如此浩大,而单一的去copy也不是设计中的一个好的方法。这个时候就用到了Target。

定义

首先,看一下苹果官方文档是对于Target的定义。

A target specifies a product to build and contains the instructions for 
building the product from a set of files in a project or workspace. A 
target defines a single product; it organizes the inputs into the build 
system—the source files and instructions for processing those source 
files—required to build that product. Projects can contain one or more 
targets, each of which produces one product.

含义也很简单,它是一个项目环境的设置文件,一个Target定义了一个单一项目环境,在一个项目工程中可以包含一个或者多个Target。也就是说一个项目中可以设置多种环境。

使用

创建Target的方式有两种:

  1. 直接copy之前项目中的Target配置;
  2. 创建新的Target配置;

步骤一:创建Target

在工程中对已存在的target进行复制,点击Duplicate即可。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

创建一个新的Target,可以使用下面的方法。

创建新的target

这里写图片描述
这里写图片描述

选择Single APP

这里写图片描述
这里写图片描述

步骤二:更改Target的名称

创建完Target以后你会发现名字后面有个copy的字样,顿时觉得业余的不行有没有?此时我们可以通过下面的方法进行名字的修改。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

步骤三:添加不同Target下的应用图标

为了满足不同环境图标的需求,可以提高两套图片,然后按照如下的方式配置。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

然后,根据不同的环境配置不同的图标地址。

这里写图片描述
这里写图片描述

步骤四:配置全局宏

配置全局宏,目的是在代码中进行环境的区分。

这里写图片描述
这里写图片描述

而在代码中也需要区分开来,不同的环境加载不同的页面,例如:

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 150, 150)];
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 150, 150)];

    view1.backgroundColor = [UIColor blackColor];
    view2.backgroundColor = [UIColor yellowColor];




#if TARGET_VERSION == 1

    [self.view addSubview:view1];   
#else

    [self.view addSubview:view2];
#endif


}
这里写图片描述
这里写图片描述

如果你使用的是Swift代码,其语法格式如下:

#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 150, 150)];
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 150, 150)];

    view1.backgroundColor = [UIColor blackColor];
    view2.backgroundColor = [UIColor yellowColor];




#if TARGET_VERSION == 1

    [self.view addSubview:view1];   
#else

    [self.view addSubview:view2];
#endif


}

到此,我们在运行下项目,不同的环境运行出来的效果就不一样的了。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

Pod管理

相信很多时候,ios的项目离不开pods的框架管理,在使用cocopods管理的时候,我们不要忘了将这些框架添加到对应的Target中,否则,可能使用的时候找不到对应的框架,对于pod的使用,可以参考以下代码进行构建:

platform :ios, '9.0'
workspace 'TestTargetDemo'
link_with 'TestTargetDemo', 'TestTargetDemoDev'
pod 'SDWebImage'
pod 'AFNetworking'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/07/05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 使用
    • 步骤一:创建Target
      • 创建新的target
      • 步骤二:更改Target的名称
      • 步骤三:添加不同Target下的应用图标
        • 步骤四:配置全局宏
        • Pod管理
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档