iOS配置TARGETS
说一下背景
自从这个项目不死不活的迭代了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的更多相关文章
- phonegap 2.7 ios配置安装详细教程(2.9通用)
原地址:http://www.cnblogs.com/yansi/archive/2013/05/14/3078222.html 在移动开发日益激烈的情况下我也不得不硬着头皮尝试下新鲜的html5的a ...
- iOS多Targets管理
序言: 个人不善于写东西,就直奔主题了. 其实今天会注意到多targets这个东西,是因为在学习一个第三方库FBMemoryProfiler的时候,用到了,所以就搜索了一些相关资料,就在这里记录一下. ...
- Cisco交换机IOS配置介绍
一.模式• 用户模式(>):• 特权模式(#):• 全局配置模式(config#):• 接口配置模式(config-if#):• 线路模式(#config-line): 二.基本IOS命令结构• ...
- 【java/C# 服务器】IOS 配置推送证书 p12文件流程 - 勿以己悲
在配置 P12 证书文件之前, 我们要准备三个文件 1.PushChat.certSigningRequest 请求证书文件 2.PushChatKey.p12 ...
- iOS 配置
1.git的配置 使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己的密码来保证安全操作,还有神奇的一招可以“不 ...
- iOS配置SSO授权
禁止/激活SSO授权 用于控制平台是否使用SSO方式进行授权(目前只支持新浪微博.Facebook.QQ空间.腾讯微博.人人网.Pocket.默认情况下是激活SSO授权方式.),代码如下: //激活S ...
- ios配置xmpp即时聊天-服务器端
一.安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 比如:Mac OS X ver. 10.7 (x86, 64-b ...
- iOS 配置支付宝
尽管非常easy,可是对于第一次接触支付宝配置的啊猿.有些细节摸不着头脑.今天就来写一个流程配置. 1.创建一个project,然后再创建一个目录,把支付宝sdk要用到的都拖到目录中.然后拖到proj ...
- Appium的ios配置
automationName text XCUITest platformName text iOS platformVersion ...
随机推荐
- 使用sql实现固定样式的输出
declare @i int ,@j int, @k varchar(60) set @i = 1 while @i <= 12 begin set @j = 1 ...
- Empirical Analysis of Beam Search Performance Degradation in Neural Sequence Models
Empirical Analysis of Beam Search Performance Degradation in Neural Sequence Models 2019-06-13 10:2 ...
- arcpy实例教程-地图范围导出到要素类
arcpy实例教程-地图范围导出到要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:将当前地图范围导出到内存要素类 描述:将当前地图的 ...
- mysql用户添加执行存储过程权限
- typescript - 1.环境搭建
安装 1.安装node.js 安装typescript npm install -g typescript 3.编译 tsc helloworld.ts Typescript开发工具Vscode自动编 ...
- openresty开发系列30--openresty中使用全局缓存
openresty开发系列30--openresty中使用全局缓存 Nginx全局内存---本地缓存 使用过如Java的朋友可能知道如Ehcache等这种进程内本地缓存.Nginx是一个Master进 ...
- 《电子计算机机房设计规范》GB50174-93
<电子计算机机房设计规范>GB50174-2008 http://gf.1190119.com/article-17886.htm 中华人民共和国国家标准 电子计算机机房设计规范 GB 5 ...
- Cisco设备配置SSH登录
一 试验拓扑 二 Server配置 ①配置hostname和domain name 因为rsa的秘钥是用hostname和domain name产生的 Router(config)#host Serv ...
- Microsoft Office Excel不能访问文件*.xls的解决方案
Microsoft Office Excel不能访问文件‘xxxx.xls“可能的原因有:·文件名称或路径不存在,文件正被其他程序使用:您正要保存的工作簿与当前打开的工作簿同名. 解决方案 1.首先检 ...
- [LeetCode] 309. Best Time to Buy and Sell Stock with Cooldown 买卖股票的最佳时间有冷却期
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...