iOS项目配置多种编译环境

        一般我们iOS项目会默认两种编译环境,一种是Debug环境(也就是测试环境),一种是Release环境(也就是正式环境),我们在开发工作中经常跑的项目是Debug环境,因为这种环境会有调试信息,可以打断点等,方便我们测试coding时候的各种信息反馈。而Release环境没有这些相关信息,但是Release环境下软件包会相对比较小运行速度也比较快。我们平常开发中通常会涉及到多种环境,比如说test环境,UAT环境,Release环境,打包时候可能会有BaseUrl的切换,如果在打包时候有一次忘了切换了,那基本上就GG了。配置环境变量能很好的解决环境切换时候引起的这些问题。

        下面来介绍一下设置环境变量的方法,这次介绍的是用Build Configuration设置环境变量,也当自己做一次笔记,也希望能给后来人做个参考。(为了测试用随手建了个项目叫ceshi,不要介意哈)。

 1.新建Build Configuration

        打开项目,点击project,在info里找到configuration,然后点击+号,选择添加,里面系统默认的会有Debug和Release两个环境,我们根据需要选择复制哪个环境,两个环境区别上边介绍过了,可以根据自己需要选择。

选择复制Configuration

我选择复制的是Debug,修改名称为TestRelease,所以我这里点+号会有三个,复制之后点开折叠会发现testrelease里面Configuration Set 默认是你复制的那个(我的是XXX.Debug),而且只有Debug和Release两个可选。

不要急,这个时候我们打开终端,终端打开项目根目录,输入  pod install 回车 pod会给我们生成xcconfig文件,点开项目根目录下Pods文件夹可查看,多了一个Pods-ceshi.testrelease.xcconfig文件

pod目录

再次回到configurations,点击选择对应的xcconfig

这个时候在我们项目的project已经设置configuration,但是Pod项目并没有,选中pod项目,新建并选择对应的configuration

pod项目project选择configuration

2.新建Scheme

        上边configuration已经新建并配置完成,接下来我们要为新建的configuration新建编译Scheme。

新建Scheme

点击NewScheme,名称设置成我们刚刚建的configuration(其实这只是一个命名,怎么命都行,不过为了方便尽量保持一致,以免出错),新建完成之后把Scheme的Run和Achieve都改成刚刚建的Configuration。

如果是团队开发app 的话,一定要把shared勾选上,这样通过git等协同开发的其他人才能看到我们新建的Scheme,可以点shared旁边的Manage Schemes按钮查看所有Schemes选中状态。

  3.新建User-Defined Setting

           schemes操作完成之后,回到项目的project,点击Build Setting,选择+号按钮,点击Add User-Defined Setting 我们来配置标示符

添加user-Defined Setting

配置不同的bundleID和AppName,我添加的字段是CostomAppBundleId和CustomProductName,对应的Scheme填写上BundleID和ProductName,如果不想做区分,也可填写一样的。

配置不同的BoundleID和AppName

4.修改info.plist,显示不同的appName和图标

找到我们app根目录中的info.plist文件,修改bundleName、BundleDisplayName和Bundleidentifier。修改后编译时候,编译器会根据我门设置好的Scheme去选择不同的AppName和BundleID

设置AppName和BundleID

设置到这一步名字已经根据不同的Scheme有不同的显示了,那么我们来设置一下不同scheme下显示不同的appIcon。找到我们项目中的Assets.xcassets,点击+号选择App Icons & Launch image->New iOS App Icon 。文件命名根据自己来,我还是用的和configuration相同的命名。

新建AppIcon
添加icon


新建完成之后,添加icon(我这里只放了一张图片,为了测试)再回到Target 的Build Setting里找到Asset Catalog Compiler里,把刚刚新建的appIcon分别设置对应的Scheme。

配置APPIcon

已经配置好环境了,那要怎么使用呢?这里把一个前辈的建议给大家共同学习,我也是从大神这里学习并做的这个笔记:“这里分享一下我分好这些环境的心得。一切切记,每个环境都要设置好Debug 和 Release!千万别认为线上的版本只设置Release就好,哪天需要调试线上版本,没有设置Debug就无从下手了。也千万别认为测试环境的版本只要设置Debug就好,万一哪天要发布一个测试环境需要发Release包,那又无从下手了。我的建议就是每个环境都配置Debug 和 Release,即使以后不用,也提前设置好,以防万一。注意这里一定要把Scheme的名字和编译方式区分开,选择了一个Scheme,只是相当于选择了一个环境,并不是代表这Debug还是Release。”


5.配置和获取环境变量

使用GCC预编译参数GCC_PROEPROCESSOR_DEFINITONS

在Target的Build Settings 中搜索preprocessor 找到Preprocessor Macros


双击点击弹出框的+号,添加对应的标识符,我这里就用项目名的首字母简写加上对应的Scheme名称,各位小伙伴在添加时候一定要按自己公司的规范,其主要目的是为了好分辨。

添加标识符

设置好标识符那我们就去试用一下是否能够使用,在代码中添加如下一段代码,通过不同的标识符来改变view的背景色,运行之后是可以根据不同的标识符来切换颜色,本文只是进行背景色设置,在开发中我们可以根据标识符切换我们项目中其他的设置,最常用的就是根据不同的环境切换我们调试的BaseUrl,只要在pch或者base类中写好,我们就可以不用动其他代码自由切换环境更换不同的URL,也不会因为疏忽导致项目上线了,发现URL忘了改了这种尴尬的局面。

文章到此为止,是我用来做笔记用的,如果看到这里对你有用那更好,相互学习。本文是借鉴大神一缕殇流化隐半边冰霜的文章的学习笔记,大神文章有更多的配置和获取环境变量方法,如有需求请去大神那参阅。此为学习笔记,如有错误欢迎指出,免得误导他人。谢谢,溜了溜了》〉》〉》〉》〉

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容