Swift1.2でCocoaLumberjackを入れたときにやったこと。
2018/10/04

久しぶりの更新ですが、そこはスルーで。
今までログについてはNSLogを使っていたものの、普通にCocoaLumberjackは入れなきゃダメだろうと、導入を決めたところ、思いのほか手こずったので、備忘録がてら記載します。
基本的な動きは以下のサイト様の内容と同じです。
How to use CocoaLumberjack in Swift
CocoaPodsでCocoaLumberjackを入れる
CocoapodsでCocoaLumberjackを入れます。
まずはコンソールからCocoapodsを入れます。すでに入っている場合は適宜アップデートですかね。
インストール
$ sudo gem install cocoapods --pre
アップデート
$ sudo gem update cocoapods
インストールできたら、Xcodeプロジェクトの[プロジェクト名].xcodeprojのファイルがあるフォルダにPodfileを作成します。
(あらかじめ、Xcodeプロジェクトは作っておいてください。)
Podfile
platform :ios, "8.1" pod "CocoaLumberjack", '2.0.0-rc2' use_frameworks!
CocoaLumberjackのバージョンは「2.0.0-rc2」指定みたいです。
use_frameworks!は一番最後に記載します。
そのあと、コンソールで[プロジェクト名].xcodeprojのファイルがあるフォルダに移動し、インストールします。
$ pod install
完了すれば、.xcworkspaceができるはずです。
CocoaLumberjackのSwift対応
Objective-Cなら後はimportするだけなんですが、Swiftはそうはいかないようです。
まず、Finderから、プロジェクト名のフォルダ/Pods/CocoaLumberjack/Classes/にアクセスします。
そこにある。CocoaLumberjack.swiftをドラッグして、XcodeのPods/CocoaLumberjack/Defaultの配下に配置します。
ダイアログが出るので以下の選択で、OK。
これでファイルが追加されましたが、これで終わりではありません。
先ほど追加したCocoaLumberjack.swiftはそのままだとエラーをはいてしまいますので、その対処をしないといけません。
具体的な対処は以下を参考にしました。
http://stackoverflow.com/questions/29647657/cocoalumberjack-2-0-0-compilation-errors-with-swift-1-2
まず、@autoclosureの書き方を直します。これはXcodeが書き直してくれるので、エラーボタンからReplace〜のメッセージを選択して修正してしまいます。
すると、今度は各SwiftLogMacro()の引数の最後にあるlogTextでエラーになると思います。
そこはlogText()と、後ろに()をつけるようにします。
これでビルドすれば成功しました。
最後に
まだまだSwiftはいろいろありますが、それでもすぐに問題を解決する人が現れるので、このスピード感は違うなと感じます。