LoginSignup
5
2

More than 1 year has passed since last update.

CocoaPodsのまとめ(Xcode13.2.1、M1チップ対応)

Last updated at Posted at 2022-02-06

参考リポジトリ

個人的には、ライブラリがしっかりローカルに保存されるので、SwiftPMより、
Cocoapodsの方が安心感があります。Github等のリポジトリ等が削除されても、
プロジェクトのPodsフォルダにライブラリがあるのでリポジトリ管理できる。

1. Homebruwのインストール

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

パスを通す(bash利用時は~/.bashrc)

% vi ~/.zshrc
export PATH=$PATH:/opt/homebrew/bin
% source ~/.zshrc

2. CocoaPodsのインストール

$ sudo gem install cocoapods
$ pod setup

3. CocoaPods環境を作る

Podfileを作成する。
CococaPodsでインストールするライブラリを指定する。

$ pod init
$ vi Podfile

バージョン指定について

例:v13.2.1
メジャーバージョン ... 13の部分。互換性がない修正バージョン
マイナーバージョン ... 2の部分。互換性がある1つ以上の機能追加
パッチ ... 1の部分。マイナーバージョンのバグ修正

つまり、機能面で同じ動作を保証するにはパッチのみをあげればよい。
マイナーバージョンを上げるには動作確認する必要がある。

参考:https://dev.classmethod.jp/articles/versoning-with-pictures/

# Uncomment the next line to define a global platform for your project
platform :ios, '12'

target 'ArchitectureIOs' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for ArchitectureIOs
  # 完全一致バージョン
  # pod 'Alamofire', '5.3.0'
  # それより上バージョン
  # pod 'Alamofire', '> 5.3.0'
  # それ以上バージョン
  # pod 'Alamofire', '>= 5.3.0'
  # それより下バージョン
  # pod 'Alamofire', '< 5.3.0'
  # それ以下バージョン
  # pod 'Alamofire', '<= 5.3.0'
  # 同一マイナーバージョンで最大
  pod 'Alamofire', '~> 5.3.0'
end

参考:https://note.com/iga34engineer/n/nf1930c395730

3. プロジェクトにpodを適用する

Podフォルダ内にライブラリをインストールする。

ライブラリをPodファイルにインストール

$ pod install
$ pod install --repo-update

--repo-updateはローカルに保管されたライブラリの更新時に行う。
m1チップの時は「m1チップの時のpod install時にffiを使用する対処」を参照
次から起動時は「.xcworkspace」を使用する。

インストールしたライブラリ

Podfile.lockにはpod installでインストールした、ライブラリのバージョンが記載される。大事なファイルなのでGitなどバージョン管理ソフトの対象にする。

再度、pod installをした場合は、このファイルを元に同じライブラリを取得します。ただ、ライブラリが廃止される可能性もあるので、Podsフォルダ内はリポジトリ管理することが公式で推奨されている。

参考:https://qiita.com/SatoshiN21/items/8c5308432b3f09b100bc

PODS:
  - Alamofire (5.3.0)

DEPENDENCIES:
  - Alamofire (~> 5.3.0)

SPEC REPOS:
  trunk:
    - Alamofire

SPEC CHECKSUMS:
  Alamofire: 2c792affbdc2f18016e08fdbcacd60aebe1ba593

PODFILE CHECKSUM: c23ce754a08ea402be3a502649f0ea1616b51ecc

COCOAPODS: 1.11.2

最新版へライブラリをアップデート

$ pod update

Podfileの指定バージョンで最新バージョンに更新します。未対応のライブラリで更新される場合もあり、pod install/pod update実行前の、Podfile.lockから適切なバージョン推測してPodfileを編集してpod updateをする。

a. podトラブル解消

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean

参考:https://stackoverflow.com/questions/16427421/how-to-remove-cocoapods-from-a-project

b1. CocoaPodsのバージョンアップ

$ sudo gem install cocoapods

b2. CocoaPodsのバージョン合わせ

最大のバージョンが使用されるが、使用するCocoaPodが動かないとpodコマンドを受け付けなくなるので注意が必要になる。

$ pod --version
$ sudo gem install -n /usr/local/bin -v 1.5.0 cocoapods
$ sudo gem uninstall cocoapods --version=1.5.0

c. m1チップの時のpod install時にffiを使用する対処

$ sudo arch -x86_64 gem install ffi
$ arch -x86_64 pod install

参考:https://developer.apple.com/forums/thread/652822

d. このPodプロジェクトの最小バージョンによるワーニング

対象バージョンを最小iOS12以上にXcodeが推奨しているだけです。
チェックを外してDoneでOKを押す。
ここでチェックを入れると、CocoaPodsで自動生成するPodフォルダ内のプロジェクトを編集してしまう。

参考:https://stackoverflow.com/questions/64052611/prompted-to-update-ios-deployment-target-to-12-0-when-deployment-set-to-ios-10-0

スクリーンショット 2022-02-06 18.35.54.png

番外

CocoaPodsなどバージョン管理ツールを使わない場合は、Github等でライブラリのプロジェクトフォルダ(プロジェクトファイルを含むフォルダ)をプロジェクトに含めて、プロジェクトのTAEGETSのTarget、General、Frameworks, Libraries, and Embedded Contentからプロジェクトフォルダを指定するだけで使用できるようになる。

1.バッケージ追加

XcodeのMenuBarのAdd Packages...
Add Local...

スクリーンショット 2022-02-06 20.43.10.png

Githubなどから持ってきたライブラリのプロジェクト

スクリーンショット 2022-02-06 18.50.13.png

Frameworks, Libraries, and Embedded Content > + > Alamofire

スクリーンショット 2022-02-06 19.22.45.png

ここまででCocoapodsと同じ環境になる。

スクリーンショット 2022-02-06 18.42.26.png

5
2
0

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
5
2