项目开发中会存在测试、正式等不同环境,需对应不同接口Host地址、项目名称等等配置。如果每次只有一个项目target的话每次打包的时候替换会很麻烦,而且容易出错。所以我们可以通过创建多个不同配置的target以区分不同环境。

1.复制原有target

复制原有target

选择仅复制

复制完成后出现一个copy的target

方便区分可将target进行改名(直接在target上回车即可编辑)

2.修改plist文件名

在复制target操作后不仅复制出了一个target,还会复制出一个对应的Info.plist文件

将复制出来的plist文件改名,好对应区分

3.为刚刚复制出来的target选择对应的plist文件

选择刚刚改名的plist文件

二、复制plist,配置plist

复制plist,重新命名,然后配置对应的Target

选择对应的Target,Build Settings,搜索info ,在info.plist File修改对应的plist文件

4.修改Scheme名,方便区分

选择Manage Schemes

回车编辑

完成

5.预定义宏已区分测试target(Build Setting–>Preprocessor Macros)

这个宏是一个全局宏,在所有/整个工程的代码中都是有效的,我们可以在这里添加上环境与处理的宏(例如:JW_TESTMARK,这个是随便自己取的)

6.根据预定义的宏以区分环境,进行配置

#if defined (JW_TESTMARK)

//测试环境
#define AppMainUrl @"http://192.168.1.111:8080/" #else //正式环境
#define AppMainUrl @"http://api.baidu.com/" #endif

打完收工

需要注意的

你的项目如果是xcworkspace,创建不同的target时,有个细节需要注意

1.需先将复制出来的target中libPods-XXXX删除

2.然后在Podfile中添加新的target

3.pod install 重新生成libPods-XXXX测试文件

文章摘抄自:

https://www.jianshu.com/p/cd3727495928

http://www.cocoachina.com/ios/20160331/15832.html

iOS 一个项目添加多个TARGET的更多相关文章

  1. iOS一个项目开始创建, 部署到git服务器

    在做iOS开发时, 最开始可能你的经理部署项目, 所以你不会插手, 只是直接从git上clone下来然后就开始撸码, 如果有一天你做经理了, 你怎么去部署一个项目呢, 下面我来过一遍流程 1. 首先需 ...

  2. Ios项目添加Pods

    一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...

  3. iOS同一项目多个Target的快速实现方法

    之前写过这种场景下的项目,比如类似滴滴的司机端和乘客端,学生端和教师端等等.. 最近有人问我,就整理记录如下: 1.正常新建一个项目,完成后  如下: 2.这一步就是添加一个新的target 3.添加 ...

  4. IOS之UI--小实例项目--添加商品和商品名(纯代码终结版)

    前言:这个小实例项目是完完全全以MJ视频传授的优化方案一步一个思路从零开始敲出代码的,而且每一步都有思路,都有逻辑所以然.敲代码讲究思路,我个人不建议记忆太多东西,反正我记性很差的. 小贴士:文章末尾 ...

  5. ios 添加多个target 管理 多个版本文件

    1. 添加一个Target 这里是添加一个Test 项目 这里添加新的target Test与Release 也是同上的操作

  6. iOS同一项目多个Target的快速实现方法 - 两种使用场景详解

    我们项目中,默认建好是只有一个target的,但是,一些场景中,多target能帮助我们更好的使用项目. 场景1: 同一项目,一般会分不同环境:开发环境.测试环境.正式(生产)环境. 这就涉及到一个请 ...

  7. 在iOS开发中,给项目添加新的.framework

    首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我 ...

  8. ios将一个项目完全导为另一个项目(tool)

    --前言:有时开始一个新项目,但新项目跟已做完的一个项目很类似,基本可以在原有项目上更改.这个时候,可以new一个新project,在将相应的代码文件copy到新的project,配置工程各参数,库等 ...

  9. Xamarin SQLite教程Xamarin.iOS项目添加引用

    Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将System.Data和Mono.Data.SQlite库导入到创建的项目中.下面将分别讲 ...

随机推荐

  1. Oracle数据 查询操作日志

    SELECT t.SQL_TEXT, t.FIRST_LOAD_TIME,t.PARSING_SCHEMA_NAME FROM v$sqlarea t WHERE t.SQL_TEXT LIKE 'D ...

  2. 2019_JAVA面试题_真实总结

    来自刚被某互联网公司录取的朋友的分享. 整理的面试题1: 1.Java里面有哪几种基础数据类型, 2.Char为何是两个字节, 3.Object有哪些方法 4.final修饰变量,函数,类的作用, 5 ...

  3. Elasticsearch 6.x版本全文检索学习之分布式特性介绍

    1.Elasticsearch 6.x版本全文检索学习之分布式特性介绍. 1).Elasticsearch支持集群默认,是一个分布式系统,其好处主要有两个. a.增大系统容量,如内存.磁盘.使得es集 ...

  4. Python 情人节超强技能 导出微信聊天记录生成词云

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Python实用宝典 PS:如有需要Python学习资料的小伙伴可 ...

  5. PlayJava Day005

    今日所学: /* 2019.08.19开始学习,此为补档. */ 类:一类事物的抽象体(如全人类,学生类,订单类) 对象:具体的个体(如张三,某个外卖订单) 对象具有属性和行为. 声明的属性语句一般放 ...

  6. 后端返回null,前端怎么处理?数据容错——不用过分相信外部数据

    场景 我们在开发过程当中,总是会遇到因为数据原因,导致使用数组方法或者获取对象属性的时候报错. xxx is not fuction Cannot read property xxxx of unde ...

  7. 需求规格说明书(final)

    1. 引言 1.1 编写目的 该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入. 本文档的预期读者包括:triple兔成员,软件工程老师,用 ...

  8. MySQL数据篇(五)--SQL对数据进行按月统计,或对数据进行按星期统计

    对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说. 一.对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总 ...

  9. BayaiM__MYSQL千万级数据量的优化方法积累__初级菜鸟

      -----------------------------------------------------------------------------———————-------------- ...

  10. Python—序列化和反序列化模块(json、pickle和shelve)

    什么是序列化 我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化.在python中为pickling,在其他语言中也被称之为serialization,marshalling,flat ...