リリース時にログ出力しないようにする方法で、まとまっているサイトがなくて困ったのでメモ
Objetive-Cプロジェクトで使用する〜.pchを使わない方法です。
#if DEBUG を有効にする
Project -> Buid Settings -> Swift Compiler -> Other Swift Flags -> Debug
に -D DEBUG を追加する
メソッドをオーバーライドする
AppDelegateファイルのクラスの外にprintとNSLogのメソッドを追加する
func print(items: Any..., separator: String = " ", terminator: String = "\n") {
#if DEBUG
Swift.print(items[0], separator:separator, terminator: terminator)
#endif
}
func NSLog(message:String){
#if DEBUG
Foundation.NSLog(message)
#endif
}
func NSLog(format:String, _ args:CVarArgType...){
#if DEBUG
Foundation.NSLog(String(format: format, arguments: args))
#endif
}
確認
print関数を書いたところから上記で作成したメソッドへ飛べるか確認します。
最後にコンソールに出力されていないことが確認できたら完了です。
参考にしたサイト
iOS Swift Xcode 6: Remove println() for release version
2015.12.11追記
Build Configuration をDebugにしてipaを作成すると
「#if DEBUG」に入らなかったのでメモ