面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

Static Library(frameworkや.aファイル)が正常に動作しない時に気をつけること

githubからframeworkのプロジェクトをDLしてきて使い方を確認すると、framework等が生成されずプロジェクト毎取り込んでビルドをさせようとするframeworkによく遭遇する。
個人的にプロジェクトを取り込むと自分のプロジェクトとframeworkのプロジェクトのビルドが動くため、ビルドが終わるまで遅くなるのが許せなかったりする。
プロジェクトのクリーンを行わないのであれば、2回目以降は遅くなることはないだろうが、クリーンしてからビルドする癖がついている自分は毎回遅くなる。

そこでframeworkプロジェクトを開いてframewrokまたは.aファイルを生成するターゲットがあれば、それを使ってframeworkや.aファイルを生成して取り込むようにしている。

frameworkを取り込んだ時、設定で気をつけること

  • 取り込んだframeworkが"Build Phases"の"Link Binary With Libraries"に含まれている
  • 取り込んだframeworkのパスが"Build Settings"の"Library Search Paths"に設定されている

実際に取り込んで、frameworkを使用しようとした際、
ErrorやWarningが出ておらず、さらにはDelegate等必要な設定も行っているのに動かない時がある。
そういう時、下記設定が必要な時がある。

"Build Settings"の"Other Linker Flags"に"-ObjC"を追加する(場合によっては"-all_load"を追加)

Cocoaの日々: [Mac][iOS] Static Library (7) カテゴリを使う場合の注意点 "-ObjC" と "-all_load"