iOS 系統認知 debug distribution release 和 #ifdef DEBUG
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 一定要選擇這個選項 !!!! 忘記哪個 也不能忘記這個,總不希望發布一個線下包給用戶吧... )
posted on 2016-08-16 17:16 ACM_Someone like you 閱讀(1953) 評論(0) 收藏 舉報
浙公網安備 33010602011771號