1. 程式人生 > >iOS: #ifdef DEBUG

iOS: #ifdef DEBUG

開發時,經常用到NSLog,但release是又想一次過清掉all NSLog,方法是:在xxx-Prefix.pch裡新增

#ifdef DEBUG
#    define DLog(...) NSLog(__VA_ARGS__)
#else
#    define DLog(...) /* */
#endif
#define ALog(...) NSLog(__VA_ARGS__)

When you want to log only in debug builds use DLog(). In release builds DLog() will be compiled as an empty comment. Otherwise use ALog() for logging in both debug and release builds. (A as in always.)

那麼"DEBUG"在哪裡定義的呢? 在 "Target > Build Settings > Preprocessor Macros > Debug" 裡有一個"DEBUG=1"。

你Run, Test, Analyze時,就屬於debug mode,當Profile, Archive時就屬於release mode。見你的ios project的"Edit Scheme..."

#ifdef DEBUG的另外一個用處是:用於push notification。sandbox device token and production device token一定不能mix在一起,否則就可能有些device收不到。見

http://blog.csdn.net/totogogo/article/details/8035095

因此我們需要為reg device token準備2個url

#ifdef DEBUG
    NSString * const [email protected]"http://xxxx/reg_dev_token";
#else
    NSString * const [email protected]"http://xxxx/reg_production_token";
#endif


相關推薦

iOS-#ifdef DEBUG程式碼塊介紹

iOS-#ifdef DEBUG巨集定義介紹 一.#ifdef DEBUG程式碼塊 #ifdef DEBUG // Debug 模式的程式碼... #else // Release 模式的程式碼... #endif 二.#DEBUG定義

iOS: #ifdef DEBUG

開發時,經常用到NSLog,但release是又想一次過清掉all NSLog,方法是:在xxx-Prefix.pch裡新增 #ifdef DEBUG # define DLog(...) NSLog(__VA_ARGS__) #else # define DL

iOS開發debug跟release版本NSLog屏蔽方法

方式 開發 簡單 比較 日誌信息 debug 新的 ... efi 簡單介紹以下幾個宏: 1) __VA_ARGS__ 是一個可變參數的宏,這個可變參數的宏是新的C99規範中新增的,目前似乎只有gcc支持(VC6.0的編譯器不支持)。宏前面加上##的作用在於,當可變參數的個

IOS #ifdef 的那些事兒

格式有點亂,整了幾次都整隻是來,大家將就一下吧。 這篇文章是本人(本人是菜鳥)在第一次接觸上線專案時遇到的一個讓我記憶深刻的問題。 假設你是大神。那麼請繞過,這僅僅是非常膚淺的知識點,寫給自己也分享給大家。 相信大家對於以下的語句一定不陌生。 #if

iOS日常Debug之Crash日誌檔案分析

好久沒寫部落格了,真的不是忙沒有時間。就是懶!閒話少說,言歸正傳。事件起因,群裡一個朋友說自己的app被拒了,蘋果給的被拒原因是AppStore稽核指南條例2.1,說是app存在崩潰。還附帶上了Crash日誌檔案。看了一眼Crash日誌檔案,徹底懵了!

iOS開發Debug之Xcode證書問題報錯

1、 確認下證書是不是開發證書,如果是釋出證書就會出現這樣的提示。 2、 證書失效了,去開發者中心重新生成一個。 3、 包識別符號不與描述檔案包含的包識別符號不一致,按照它的提示換一下就好了,最好不要點 Fix Issue,點完後 Xcode

#ifdef DEBUG

之前參加華為程式設計比賽,三個問題在一個C檔案裡除錯,假如出現程式崩潰問題,將當成全錯處理。於是當時突發奇想用上了這中模組,沒任何技術含量,但是真方便了很多。最後第三題沒有做出來,於是把#define Q3一行註釋掉就行了,當然,#define DEBUG作為測試輸出只用自

iOS開發:Debug與Release版本NSLog遮蔽方法

在開發過程中一般會用到NSLog(<#NSString *format, ...#>)來獲得具體的資訊。 但當我們釋出app時,一步一步的去找NSLog(<#NSString *format, ...#>),並遮蔽掉,這樣比較浪費時間還很累。我們可以

iOS開發Debug之UIAlertViewController在iPad彈出崩潰問題

UIAlertViewController在iPad(iOS8)彈出崩潰問題。 解決方法: 彈出之前加上以下程式碼即可。 UIPopoverPresentationController *popov

iOS開發debug跟release版本log遮蔽方法

簡單介紹以下幾個巨集: 1) __VA_ARGS__ 是一個可變引數的巨集,這個可變引數的巨集是新的C99規範中新增的,目前似乎只有gcc支援(VC6.0的編譯器不支援)。巨集前面加上##的作用在於,當可變引數的個數為0時,這裡的##起到把前面多餘的","去掉,否則會編譯

iOSDebug和Release模式

感謝rectinajh總結 這裡搬運一下: 一、Debug是除錯版本,包括的程式資訊更多,Debug通常稱為除錯版本,通過一系列編譯選項的配合,編譯的結果通常包含除錯資訊,而且不做任何優化,以為開發人員提供強大的應用程式除錯能力。 二、只

iOS開發Debug之上架APPStore的構建版本消失

背景:打包完ipa後上傳到APPStore後顯示構建版本後消失或者在iTunes Connect-我的APP-活動中,看見提交版本正在處理後消失。原因:1、APP中使用了私有的API,導致構建版本程式碼稽核失敗。2、APP中的使用者許可權沒有新增。比如相機和相簿許可權漏了其中

iOS開發Debug之上架根證書過期問題

從16年2月14號開始,上傳AppStore時可能會碰到這個問題: Failed to locate or generate matching signing assets Xcode attem

iOS開發debug跟release版本NSLog遮蔽方法

簡單介紹以下幾個巨集: 1) __VA_ARGS__ 是一個可變引數的巨集,這個可變引數的巨集是新的C99規範中新增的,目前似乎只有gcc支援(VC6.0的編譯器不支援)。巨集前面加上##的作用在於,當可變引數的個數為0時,這裡的##起到把前面多餘的","去掉,否則會編譯出

cordova環境搭建以及將vue的webapp打包成ios和安卓的debug和release版本app

簡介 cordova可以幫我們將一個webApp打包成安卓apk和ios的App,本文詳細描述了cordova的環境搭建以及打包vue專案的webapp成手機端的App的詳細過程,打包的app分為debug版本的除錯版以及能上線的release版本,其中都會做詳細介紹,文章中會也會描述整個環節遇

iOS Debug環境下生成dSYM檔案配置

Build Setting Debug Information Format -> DWARF with dSYM File Generate Debug Symbols -> YES 在 Products 資料夾內 Show In Finder

iOS 除錯技巧:如何利用 LLDB 來 Debug

http://www.cocoachina.com/ios/20160301/15371.html 前言 在開發中一定需要到除錯跟蹤,但是很多開發者雖然做過很多的專案,但是未必瞭解開發中有哪些除錯命令可以幫助我們開發者更快更好地定位到問題所在。 本篇文章主要是講解在開發中如何利用LLDB

iOS開發之Weex爬坑之路環境部署和Devtools Debug(一)

前言 不多說,直接開始Weex,算是記錄這段時間對新技術的學習積累。期間看了很多Vue.js和Node.js的基礎,順便捋了以下CSS的flex-box佈局等等前端的知識,太多了太雜了,還是用筆記記錄下。直接從官方介紹,開始 補充一個傳送門:和文章沒什麼關係 JS中的async和await

iphone ios debug 除錯時如何檢視、監視變數

對於IPhone開發/XCode的初學者,如何在除錯時檢視變數的值是很頭痛的事情。因為Xcode的expression 經常無法正確顯示變數的值。但是強大的GDB可以很方便的幫我們檢視變數的值。 當執行到某斷點時,在GDB視窗中使用po就可以檢視變數.(po = pri

iOS開發-Xcode Debug、Release、Archive、Profile、Analyze概念解釋

1,Debug和Release版本區別? 眾所周知,我們進行iOS開發,在Xcode除錯程式時,分為兩種方式,Debug和Release,在Target的Setting中相信大家應該看到很多選項都分為Debug和Release,方便我們分別設定,滿足除錯和釋出的不同