说一下背景

自从这个项目不死不活的迭代了2年,从项目搭建到现在,一直都是自己在开发和维护,所以项目结构非常清晰,但是之前的水平写的代码现在看来也是惨不忍睹,不过本人比较懒,也就没有考虑过重构的事情 - - 是不是一位不合格的程序员呢,哈哈哈!

这个项目中开始是用oc写的,今年开始,由于喜欢上了swift,所以导致这次的迭代使用了swift开发,所以项目目前应该算是oc和swift混编(也没看到swift编译快到哪里去呀?),如何混编,这里就不多赘述了,百度搜一下很多,总结一下,大致就两点:

1.swift调用oc的代码,需要使用“桥接文件”,桥接文件基本上在你创建swift代码的时候会提示你创建,桥接文件里导入的是在swift代码中要使用到的oc代码。

桥接文件的配置路径在BuildSettings 中搜索  Swift

只要路径正确,配置完成后,在桥接文件里引入swift代码中要使用的oc库即可。

2. oc代码调用swift代码文件。 在创建swift文件的时候,系统会自动创建一个 "productName-Swift.h"的文件,productName就是项目名,在要使用swift代码文件的地方 引入即可。这个文件是找不到的,但实际上是存在的。

--------------------------分割线-------------------------

以上是项目的背景,下面要说到使用targets了

在这个项目之前,从来没有使用过targets,不是懒 而是因为之前的项目没这个必要

但是这次客户有一个需求,这个app需要有一个内部版本,内部版本开放一些特殊的功能,而线上版本没有,所以才考虑使用targets来配置一下两种环境。

如果在相同代码或者90%代码不变的情况下,有部署多端或者部署多个环境的要求下,建议还是使用targets来管理,很方便。

1.创建targets

这个不多说,很简单,单击目前已有的targets,选择“Duplicate”,复制一个相同环境的tagets,然后修改tagets名称。 然后  Manage Schemes,

将两个tagets都选上,这样打包或者debug的时候,就可以选择不同的环境配置了

2.配置内部版target

  上面第一步创建好了targets后,需要对这个targets进行配置,首先就是在BuildSettings中搜索 “preprocessing”,设置一个内部环境独有的宏 kTargetInternal,这样就可以在代码中使用此宏了。

除了配置宏,还要配置info.plist。在上面的步骤中,当我们重新"Duplicate'一个targets的时候,也会重新生成一个plist文件,buildsetting搜索 'Packaging'

OK,配置结束,这个时候运行基本上没问题,你可以在这个targets中配置属于这个环境独有的图片,启动图等等。

一定要注意一下,如果你是用oc和swift混编的话,注意这里:

由于不管有几个targets,在创建swift文件的时候,会默认生成一个productName-Swift.h的文件,所以这里一定不要配 $(TARGET_NAME)-Swift,这样会使你的程序报错,会提示你找不到xxxswift文件。不管在哪个targets中,一定要写死,

iOS配置TARGETS的更多相关文章

  1. phonegap 2.7 ios配置安装详细教程(2.9通用)

    原地址:http://www.cnblogs.com/yansi/archive/2013/05/14/3078222.html 在移动开发日益激烈的情况下我也不得不硬着头皮尝试下新鲜的html5的a ...

  2. iOS多Targets管理

    序言: 个人不善于写东西,就直奔主题了. 其实今天会注意到多targets这个东西,是因为在学习一个第三方库FBMemoryProfiler的时候,用到了,所以就搜索了一些相关资料,就在这里记录一下. ...

  3. Cisco交换机IOS配置介绍

    一.模式• 用户模式(>):• 特权模式(#):• 全局配置模式(config#):• 接口配置模式(config-if#):• 线路模式(#config-line): 二.基本IOS命令结构• ...

  4. 【java/C# 服务器】IOS 配置推送证书 p12文件流程 - 勿以己悲

    在配置 P12 证书文件之前, 我们要准备三个文件 1.PushChat.certSigningRequest      请求证书文件 2.PushChatKey.p12               ...

  5. iOS 配置

    1.git的配置 使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己的密码来保证安全操作,还有神奇的一招可以“不 ...

  6. iOS配置SSO授权

    禁止/激活SSO授权 用于控制平台是否使用SSO方式进行授权(目前只支持新浪微博.Facebook.QQ空间.腾讯微博.人人网.Pocket.默认情况下是激活SSO授权方式.),代码如下: //激活S ...

  7. ios配置xmpp即时聊天-服务器端

    一.安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 比如:Mac OS X ver. 10.7 (x86, 64-b ...

  8. iOS 配置支付宝

    尽管非常easy,可是对于第一次接触支付宝配置的啊猿.有些细节摸不着头脑.今天就来写一个流程配置. 1.创建一个project,然后再创建一个目录,把支付宝sdk要用到的都拖到目录中.然后拖到proj ...

  9. Appium的ios配置

    automationName  text        XCUITest platformName             text          iOS platformVersion      ...

随机推荐

  1. 性能测试分析过程(二)cpu 使用率过高的分析方法

    Linux 系统下 cpu 使用率过高的分析方法 1.通过 top 命令可以很明显查看出哪个进程耗cpu比较高 2. ps -mp 25147-o THREAD,tid,time\top -Hp pi ...

  2. [转发]for 循环,jQuery循环遍历详解

    1.for 循环原生JS最基本的使用: for (var i=0;i<cars.length;i++) { ..... } for - 循环代码块一定的次数2.for infor/in - 循环 ...

  3. CEF 远程调试

    转载:https://www.cnblogs.com/TianFang/p/9906786.html 转载:https://stackoverflow.com/questions/29117882/d ...

  4. Java基础 switch 简单示例

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  5. DispatcherServlet 被加载顺序

    javax.servlet.Servlet#init 0 -> javax.servlet.GenericServlet#init(javax.servlet.ServletConfig) 1 ...

  6. opencv yuvNV21转RGB

    void yuv420Torgb() { FILE *fp = fopen("D:\\1.yuv","rb"); ; ; uchar *yuvdata = / ...

  7. 实现RTSP摄像机硬盘录像机NVR网站网页微信H5直播方案EasyNVR部署问题之:ERR_CONTENT_LENGTH_MISMATCH

    背景分析 接触到EasyNVR产品的开发者都知道,EasyNVR是一套功能齐全.简洁易用的流媒体解决方案,可作为能力曾前端接入摄像头,后端接入业务系统使用,也可以作为应用层,直接修改为属于企业用户自己 ...

  8. [转]git登录账号密码错误remote: Incorrect username or password

    链接地址:https://baijiahao.baidu.com/s?id=1622020216177100162&wfr=spider&for=pc

  9. [LeetCode] 582. Kill Process 终止进程

    Given n processes, each process has a unique PID (process id) and its PPID (parent process id). Each ...

  10. 当代码上传git时,提示Repository not found The requested repository does not exist, or you do not have permission to access it. fatal: Could not read from remote repository. Please make sure you have the corre

    1.检查当前git中设置的用户名与邮箱是否与自己电脑上的一致. 看这个文件中 如果不一致,只需要把里面的内容全部复制出来添加到git(看下图位置) 这是再执行:git push -u origin m ...