iOS 项目多环境配置
多环境配置
项目中常常会遇到多个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 项目多环境配置相关推荐
- 基于node.js开发环境下创建及开发vue.js项目的环境配置骤
基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...
- iOS 项目开发常用配置
iOS 9 https适配http在info.plist中配置NSAppTransportSecurity 类型为字典 包含有一个对象为: (NSAllowsArbitraryLoadsbool ...
- 使用EmBitz开发STM32项目开发环境配置
一.EmBitz软件获取与安装 1.EmBitz软件的获取 EmBitz原名Em::Blocks,是基于Code::Blocks开发的,面向嵌入式的C/C++集成开发环境.支持J-Link和ST ...
- ROS学习笔记——基于Prometheus无人机开源项目仿真环境配置
本笔记基于ubuntu18.04版本,配置基于Prometheus无人机开源项目仿真环境. 需要事先在电脑上安装了ROS,Mavros功能包,其余可参考Amov教程, ...
- 使用Vue-cli从零开始搭建Vue全家桶(仿b站客户端)项目(1.环境配置、实现登录功能)
1.前言 技术栈:Vue全家桶+Element.ui组件库+Axios 功能:具有登录.配置个人信息.修改个人头像.发布评论.发布动态等功能 话不多说,先看成品动图,也可点击此链接进行 ...
- QT5.13.0 for IOS虚拟机开发环境配置版本
iphone开发环境配置真的坑,不知道版本之间的匹配,装了好多个版本才配好.使用的是vmware15虚拟机来配置的环境: macOS版本:10.13.6 XCode版本:10.1 QT版本:5.13. ...
- 【斯坦福计网CS144项目】环境配置 Lab0: ByteStream
前言 感觉学了不少 C++ 编程的知识和技术但比较缺少实践,于是打算找一些项目跟着做一做. 首先安利一个自学网站 CS自学指南,北大的同学做的,汇总了很多国内外高校 CS 相关的高质量公开课,其中大部 ...
- Ubuntu 16下 AnyProxy + ios 抓包环境配置
目录 AnyProxy及依赖环境的安装 联调AnyProxy + ios AnyProxy及依赖环境的安装 nodejs. npm.AnyProxy.pm2安装 // 安装node apt-get i ...
- unity开发VR的项目01——环境配置(unity2020.3)
使用unity创建一个steam VR项目,首先要进行环境的配置. 一.Steam VR插件导入 创建一个unity 3D项目,在unity 商店(window->asset store)中搜索 ...
最新文章
- Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
- linux 编译c_含有CGO代码的项目如何实现跨平台编译
- Mysql5.7中子查询时order by与group by合用无效的解决办法
- 在食堂吃饭是最好的解
- Scala声明变量、常用类型、条件表达式、块表达式、循环
- WEBSERVICE 之WSDL
- 3.概率分布函数与概率密度函数
- RxSwift 5官方Demo调试和学习资源
- Android手机端脚本录制
- zoom 更改安装位置_如何以Zoom更改会议主持人
- matlab ill,Matlab跑GMM聚类时出现Ill-conditioned covariance created at iteration xx错误提示
- 主编编辑器如何插入图片
- 【建模教程】你还不知道的游戏模型规范要求知识点,汇总赶紧收藏!
- 我被感动了!世间自有真爱 - 林林与静静
- 数值算法 —— 邻接元素操作(adjacent_difference)
- 同一服务器上运行两个mysql实例
- mysql where in_mysql where in 用法举例
- 黑群晖vmm专业版_群晖的ABB应用不错,但必须吐槽群晖 VMM功能,让你看看就是不让你好好用!!!...
- android 获取画布,Android触摸事件如何实现笔触画布详解
- 苹果与希捷 到底谁的错
热门文章
- 【Linux】 -- TCP协议 (一)
- myeclipse 2017 ci 10 破解包+教程(亲测已成功)
- CloudTorrent 磁链下载 docker版本安装 nginx配置
- MySQL-彻底让你搞懂mysql索引
- 地平线战投后 这家智能驾驶“新星”又获国电投“大平台”强劲助力
- windows11 文件夹打开慢解决方法推荐
- Uber将颠覆B.A.T?
- koch曲线的绘制和代码
- 免费的可视化Web报表工具,JimuReport v1.5.0-beta版本发布
- 世界上最好的编程语言是……