36
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Carthageを使ったフレキシブルな開発環境の構築

Posted at

tl;dr

Carthageを使って高速なビルド環境を手に入れたいけど、ライブラリ側のコードをデバッグしたいこともある、そんなあなたのための豆知識です。
https://github.com/toshi0383/CarthageWorkspaceSample

普通にCarthageでライブラリをインストールする

まずは普通に carthage update して、 carthage copy-frameworks をBuild Phaseに設定します。詳細は、Carthageのドキュメントに譲ります。

Carthage/Checkouts/ 以下に展開されたxcodeprojをプロジェクトに追加する

library-added

こうすると、追加したxcodeprojをアプリと一緒にビルドしてくれるようになり、ライブラリ側のコードにデバッガを当てることができるようになります。追加する先はxcworkspace, xcodeproj, どちらでも構いません。

xcodeprojに追加する場合は、こんな感じになると思います。
nested-xcodeproj.png

ライブラリのデバッグをする必要がない時

上の手順を踏んだ状態だと、毎回ライブラリのxcodeprojをビルドしてしまいビルドに時間がかかります。気になる場合は Carthage/Checkouts/ を削除して対応しましょう。参照が切れて赤くなりますが、Linkしているframeworkは Carthage/Build/ にあるため、ビルドはちゃんと通ります。
library-removed

普段はこの状態にしておいて、必要な時に carthage checkout MyLibrary として Carthage/Checkouts/ に展開する形が良いかと思います。

ライブラリの数が増えてくると赤いのが目障りかもしれないので、Groupでまとめてしまってもいいかもしれません。
grouped-xcodeproj.png

そもそもなぜこういう解説が必要なのか?

ビルドした人のPC上でしかデバッグシンボルが紐づかないというXcodeの問題があるためです。Carthageのissueでも議論されていました

この問題はAppleによってずっと放置されています。

Dupe rdar://23551273 if you want Apple to fix the root cause of this problem.

とCarthageのREADMEにもある通り、ぜひみんなで同じ内容のバグレポートを登録してAppleに改善を促しましょう!

36
32
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?