iOS配置TARGETS

说一下背景程序员

 

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

 

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

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

 

 

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

 

 

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

 

 

 

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

 

 

 

 

 

 

--------------------------分割线-------------------------开发

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

 

在这个项目以前,历来没有使用过targets,不是懒 而是由于以前的项目没这个必要get

 

可是此次客户有一个需求,这个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中,必定要写死,

相关文章
相关标签/搜索