こんにちは
最近Swiftアプリを作っている筆者です。
その中でも今日はタブとビューを同期的に遷移できるライブラリについて紹介します。
と思ったのですが使い方はすでに先人が多くいるので今日は僕が詰まったところについて解説しようと思います。
そのライブラリはXLPagerTabStripといいます。
このライブラリの使い方については以下のサイトを参考にしてください。
導入にあたって、すぐできると思っていたのですが
ライブラリの導入から実行するまでかなりの紆余曲折がありました。
始めに行っておきますが、本当に初心者の超初歩的ミスなのでそのつもりで見てください。
何をしたのか
Xcodeを起動した段階で以下のエラーが発生しました。
- ld: library not found for -XLPagerTabStrip - clang: error: linker command failed with exit code 1 (use -v to see invocation)
意味はXLPagerTabStripがないということです。おかしいですよね、さっきライブラリを入れたばかりだったのにおかしいですよね?
結論
もう結論を言うと、インストール後に起動するファイルを間違っていました。
CocoaPodsからライブラリを入れた場合の正しい手順は以下のようになります。
- ライブラリはCocoaPodsからダウンロードする
- インストールがおわったら、<プロジェクト名>.xcworkspaceが作成される。
- <プロジェクト名>.xcworkspaceを実行する。
僕の手順との違いはXcodeからプロジェクトを実行するのか、ライブラリから生成されたファイルを実行するのかの違いです。
解説
swiftのプログラムは実行単位である"project"とそれらを包括して管理する"workspace"からなります。
はじめswiftのアプリを作るとprojectの単位で生成されます。しかし、CocoaPodsでライブラリを導入するとworkspaceの単位でアプリのライブラリに対する依存を管理することになるのでprojectのみでは実行ができないということになります。
つまり、CocoaPodsで生成される<プロジェクト名>.xcworkspaceはworkspaceであり、ライブラリを入れたプロジェクトを包括してるので、これを実行するべきだったというお話です。
僕はこれに苦しめられたので、もうそんな人が出ないようにしてほしいです。