今回の題
初めまして、swiftの学習を初めて2週間ちょっとの人です。
利用したいライブラリがあり、パッケージ管理にCocoaPodsを導入しようとしたところ、何箇所か詰まった箇所があったのでそれをメモしておきます。
エラー解消しながら導入手順も載せてます。
何か間違い等あればお手数ですが、コメントにお願いいたします。
環境
macOS Catalina 10.15.6
xcode 11.1
CocoaPodsのインストール
ターミナルを起動して以下のコマンドでcocoapodsをインストールします。
sudo gem install cocoapods
が、早速ここで以下のようなエラーが出ました。
ERROR: Loading command: install (LoadError)
dlopen(×××××××××/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin16/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: ×××××××××/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin16/openssl.bundle
Reason: image not found - ×××××××××/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin16/openssl.bundle ERundefined method `invoke_with_build_ar
このエラーの解決策がこちらの記事にある、
$ rbenv uninstall 2.5.0
$ rbenv install 2.5.0
を行う事で解決できました。
バージョンはエラー内容にある自分の環境のものに置き換えてください。
私の場合は、エラー内容に2.5.0とあったのでそれを指定して行いました。
そしたらもう一度インストールを実行。
sudo gem install cocoapods
今度は成功しました。
設定
ライブラリの情報をセットアップ。
pod setup
そうしたらプロジェクトまで移動します。
私はここで、
プロジェクトってどの階層だ?
ってなったのですが、プロジェクト名.xcodeprojがある階層をさしているそうです。
間違えて更にその下の階層に行くとこでした汗
Podfileの作成
以下のコマンドを実行すると、今いる階層(プロジェクト)にPodfileというファイルが作成されます。
pod init
Podfileを編集
初期状態で以下のようになっています。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'UIMenuItem' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for UIMenuItem
end
今回私は、FloatingPanelというライブラリを使いたかったので、以下のように編集します。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'UIMenuItem' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for UIMenuItem
pod 'FloatingPanel' # 追記
end
pod 'FloatingPanel'を追記しました
編集が終わったらファイルを保存し閉じます。
ライブラリのインストール
以下のコマンドを実行する事でPodfileに記述に従ってライブラリがインストールされます。
pod install
ライブラリを使ってみる
ここで少し勘違いをして詰まりました。
これまで、
プロジェクト名.xcodeproj
というファイルを開いて作業してきたのですが、そこだとライブラリが使用できませんでした。
調べてみると、CocoaPods導入後は、
プロジェクト名.xcworkspaceというファイルで作業することになります。
同じ階層に作られているので間違えずにこちらを開いてください。
ライブラリをimportします。
import UIKit
import FloatingPanel // ライブラリをimport
class ViewController: UIViewController {
// 略
ここで終わっている記事が多かったのですが、私の場合、
No such module 'FloatingPanel'
というエラーが出ました。
このエラーの解決策がこちらです。
stackoverflowのかなり古い質問ですが、そのまま試したらスルッとエラーが消えました。
手順を書いておきます。
まず、以下の画像を参考にManage Schemes...を見つけ出してクリックしてください。

下記のようなメニューの中にライブラリ名があるのでチェックをつけてください。
これでエラーが消えます。

以上です。