多环境配置

项目中常常会遇到多个app环境,比如开发环境,测试环境,预发布环境,发布环境等,当需要开发打多个包的时候,一般常见做法就是直接代码里面修改环境变量,改完之后Archive一下就打包了。当然这种做法很正确,只不过不是很优雅很高效。如果搭建好了Jenkins(搭建教程),我们利用它来优雅的打包。如果利用Jenkins来打包,我们就需要来给app来配置一下多个环境变量了。之后Jenkins分别再不同环境下自动集成即可

一、利用Build Configuration来配置多环境

1. 新建Build Configuration

官方文档,新版文档链接在这里Build settings reference。

先点击Project里面找到Configuration,然后选择添加,这里新加一个Configuration。系统默认是2个,一个Debug,一个Release。这里我们需要选择是复制一个Debug还是Release。Release和Debug的区别是,Release是不能调试程序,因为默认是屏蔽了可调试的一些参数,具体可以看BuildSetting里面的区别,而且Release编译时有做编译优化,会比用Debug打包出来的体积更小一点。

注意:刚刚新建完Build Configuration之后,这时如果有pod,请立即执行一下

pod install

pod安装完成之后会自动生成xcconfig文件,如果你手动新建这个xcconfig,然后把原来的debug和release对应的pod xcconfig文件内容复制进来,这样做是无效的,需要pod自己去生成xcconfig文件才能被识别到。

新建完Build Configuration,这个时候需要新建pod里面对应的Build Configuration,要不然一会编译会报错。如果没用pod,可以忽略一下这一段。

然后就可以选择不同的configuration进行运行或者打包

或者新建一个Scheme,不用每次都去修改

用宏定义来区分每个Configuration配置下的环境

比如这样的定义,如果configuration选择的是Devleop,然后下面打印只会在Devleop下的DEBUG下才会执行

#if DEBUG
print("DEBUG")
#endif

在OC项目中需要在Build Settings中的Preprocessing定义

上图配置,如果选中的是Develop,那么代码里只有宏DEVELOP,和DEBUG才会执行

Swfit项目需要在Build Settings ->Swift Compiler - CustomFlags中进行配置

新建User-defined Build Settings

再次回到Project或者单独的Target的Build Settings里面来,Add User-Defined Setting。

自定义appName

然后将info.plist中的Bundle name修改为自定义的AppName

bundle Identifier配置

AppIcon、Launch Image配置

对应的资源文件

然后根据项目自己选择对应的icon

版本信息

info.plist中修改Bundle version$(CURRENT_PROJECT_VERSION)

还有就是签名信息等都可以按照上面的方式配置

二、新建多Target

参考:
https://www.jianshu.com/p/83b6e781eb51l

iOS 项目多环境配置相关推荐

  1. 基于node.js开发环境下创建及开发vue.js项目的环境配置骤

    基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...

  2. iOS 项目开发常用配置

    iOS 9   https适配http在info.plist中配置NSAppTransportSecurity  类型为字典 包含有一个对象为: (NSAllowsArbitraryLoadsbool ...

  3. 使用EmBitz开发STM32项目开发环境配置

     一.EmBitz软件获取与安装 1.EmBitz软件的获取 EmBitz原名Em::Blocks,是基于Code::Blocks开发的,面向嵌入式的C/C++集成开发环境.支持J-Link和ST ...

  4. ROS学习笔记——基于Prometheus无人机开源项目仿真环境配置

    本笔记基于ubuntu18.04版本,配置基于Prometheus无人机开源项目仿真环境. 需要事先在电脑上安装了ROS,Mavros功能包,其余可参考Amov教程,                  ...

  5. 使用Vue-cli从零开始搭建Vue全家桶(仿b站客户端)项目(1.环境配置、实现登录功能)

    1.前言         技术栈:Vue全家桶+Element.ui组件库+Axios 功能:具有登录.配置个人信息.修改个人头像.发布评论.发布动态等功能 话不多说,先看成品动图,也可点击此链接进行 ...

  6. QT5.13.0 for IOS虚拟机开发环境配置版本

    iphone开发环境配置真的坑,不知道版本之间的匹配,装了好多个版本才配好.使用的是vmware15虚拟机来配置的环境: macOS版本:10.13.6 XCode版本:10.1 QT版本:5.13. ...

  7. 【斯坦福计网CS144项目】环境配置 Lab0: ByteStream

    前言 感觉学了不少 C++ 编程的知识和技术但比较缺少实践,于是打算找一些项目跟着做一做. 首先安利一个自学网站 CS自学指南,北大的同学做的,汇总了很多国内外高校 CS 相关的高质量公开课,其中大部 ...

  8. Ubuntu 16下 AnyProxy + ios 抓包环境配置

    目录 AnyProxy及依赖环境的安装 联调AnyProxy + ios AnyProxy及依赖环境的安装 nodejs. npm.AnyProxy.pm2安装 // 安装node apt-get i ...

  9. unity开发VR的项目01——环境配置(unity2020.3)

    使用unity创建一个steam VR项目,首先要进行环境的配置. 一.Steam VR插件导入 创建一个unity 3D项目,在unity 商店(window->asset store)中搜索 ...

最新文章

  1. Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
  2. linux 编译c_含有CGO代码的项目如何实现跨平台编译
  3. Mysql5.7中子查询时order by与group by合用无效的解决办法
  4. 在食堂吃饭是最好的解
  5. Scala声明变量、常用类型、条件表达式、块表达式、循环
  6. WEBSERVICE 之WSDL
  7. 3.概率分布函数与概率密度函数
  8. RxSwift 5官方Demo调试和学习资源
  9. Android手机端脚本录制
  10. zoom 更改安装位置_如何以Zoom更改会议主持人
  11. matlab ill,Matlab跑GMM聚类时出现Ill-conditioned covariance created at iteration xx错误提示
  12. 主编编辑器如何插入图片
  13. 【建模教程】你还不知道的游戏模型规范要求知识点,汇总赶紧收藏!
  14. 我被感动了!世间自有真爱 - 林林与静静
  15. 数值算法 —— 邻接元素操作(adjacent_difference)
  16. 同一服务器上运行两个mysql实例
  17. mysql where in_mysql where in 用法举例
  18. 黑群晖vmm专业版_群晖的ABB应用不错,但必须吐槽群晖 VMM功能,让你看看就是不让你好好用!!!...
  19. android 获取画布,Android触摸事件如何实现笔触画布详解
  20. 苹果与希捷 到底谁的错

热门文章

  1. 【Linux】 -- TCP协议 (一)
  2. myeclipse 2017 ci 10 破解包+教程(亲测已成功)
  3. CloudTorrent 磁链下载 docker版本安装 nginx配置
  4. MySQL-彻底让你搞懂mysql索引
  5. 地平线战投后 这家智能驾驶“新星”又获国电投“大平台”强劲助力
  6. windows11 文件夹打开慢解决方法推荐
  7. Uber将颠覆B.A.T?
  8. koch曲线的绘制和代码
  9. 免费的可视化Web报表工具,JimuReport v1.5.0-beta版本发布
  10. 世界上最好的编程语言是……