debug:调试模式 有调试信息 线下

release: 无调试信息 经过了编译优化 发布 给用户使用的 线上模式 

一般 工程项目 都是自带 上述两种配置结构

还有出现

distribution: 一般都没有这个选项,网上给的一种说法是"是使用了企业证书的编译版本。虽然这不是特别要求非得如此,但是许多参与企业版证书发布的程序员都遵守了这么一个协议"

其实,我们也可以自定一个这个结构,(这里我创建的是和Release一样的一个Distribution 当且仅当内测的时候用可选用这个)

(1)第一步

如图:菜单栏 Editor - Add Configuration  - 在 project 里面的 info 的 Configurations 里面 点 "+"号 可以创建一个你的项目需要的结构

(2)第二步

创建一个新的结构是在复制已存在的debug 和 release结构的基础之上,所以还要处理一次全局宏的问题

习惯吧 我这里 把debug模式叫线下 把release distribution 叫线上模式 release 更加严格的讲 应该叫"上线模式 上传到AppStore的模式"

很明显 在debug的情况 执行打印日志  其他模式不打印(release 和 Distribution)

//DEBUG  模式下打印日志,当前行
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); //debug
#else
# define DLog(...) //非debug
#endif

优势:(1)大量的日志输出也会耗费app本身性能  所以...

(2)过多的日志输出在苹果官方测试评估过程中也会发现 然后退回 告诉你 减少不必要的输出...

同理有好多类似的用法

 #ifdef DEBUG
# NSString * const BASIC_URL=@"http://xxxx/test"; //debug
#else
# NSString * const BASIC_URL=@"http://xxxx/production_test"; //其他
#endif

模式切换:

配置  edit scheme

(1)如果 只是模拟器和真机测试    run模式下面  build configuration 配置选择 debug 是  切换到线下, 会打印 DLog 会使用 http://xxxx/test,如果选择 release 是切换到线上,不会打印 DLog 会使用 http://xxxx/production_test ... ...

(2)如果是 打包,在调整基本的 开发者 生产者 证书 和 配置文件之外  调控Archive 归档来配置 打出的包 是线上还是线下

       线下 : Archive  选择    build configuration 配置  debug

线上 : distribution / release

上线 :  release (上传到appstore  一定要选择这个选项 !!!! 忘记哪个 也不能忘记这个,总不希望发布一个线下包给用户吧... )

最新文章

  1. 用spm2构建seajs项目的过程
  2. byte[] 转十进制
  3. HTML5学习总结-01 开发环境和历史
  4. ajax提交Form
  5. SOAPUI测试步骤之流量控制(Conditional Goto)
  6. BZOJ3346 : Ural1811 Dual Sim Phone
  7. HLG2062(make,heap问题)
  8. 2015年9月29日 sql 触发器
  9. Android 连接tomcat模拟登陆账号
  10. Facebook登录 AndroidStudio
  11. BcdTool(系统启动菜单管理器) v1.0912 绿色版
  12. Java学习(一)
  13. js设置radio单选框值选中
  14. 利用insertd查出更新记录
  15. Fiddler抓包—搞定接口测试
  16. CountUp.js用法 让数字动起来的插件
  17. 【小白的CFD之旅】小结及预告
  18. HDU 1074 Doing Homework (dp+状态压缩)
  19. CNZZ站点流量统计原理简析
  20. Cocostudio学习笔记(2) Button + CheckBox

热门文章

  1. python学习代码
  2. Unity学习笔记 - UI System(一)
  3. [转]sql语句优化原则
  4. jQuery EasyUI DataGrid在MVC中的运用-基本属性并实现分页
  5. python 开发技巧(3)-- 连接mysql 出现错误 ModuleNotFoundError: No module named 'MySQLdb'
  6. erlang 洗牌 shuffle
  7. Mongodb 与 MySQL对比
  8. js 把字符串当做方法执行
  9. apache2+svn Expected FS format '2'; found format '3'
  10. 项模板选择器属性(ItemTemplateSelector属性)和样式选择器(ItemContainerStyleSelector)