CocoaPods 自作ライブラリを公開する - shirajira/family-account-ios GitHub Wiki
CocoaPods 自作ライブラリを公開する
CocoaPods の概要やツールのインストール方法はこちらを参照。
CocoaPods インストール方法
やりたいこと
自作のライブラリを CocoaPods に公開したい。
操作手順
0. 準備するもの
- GitHub などのアカウント
- Xcode
- CocoaPods
- CocoaPods のアカウント登録に使うメールアドレス
1. パッケージを作成
Xcode を起動し,メニューバー -> File -> New -> Swift Package... を選択する。
- Save as: 公開するライブラリの名称
- Tags: 任意
- Where: 保存先ディレクトリ
Source Control では Create Git Repository on my Mac にチェックを入れるか,または手動で git init
するかはお好みで。
筆者はすでに git init
済みのディレクトリに保存したので Source Control はグレーアウトしてました。
2. ライブラリを実装
ライブラリを実装していきましょう。
どこに何を書くかは以下を参照。
Package.swift
メタデータを記載するファイル。
Sources/
ライブラリのコードを格納するディレクトリ。
外部からアクセス可能なクラスや関数には open
や public
修飾子を忘れずに。
Tests/
ライブラリのテストコードを格納するディレクトリ。
テストの書き方などについては以下を参照してください。
Xcode テスト環境を設定する
3. Podspec ファイルを作成
ライブラリの実装が終わったら,プロジェクトのルートに移動して以下コマンドを実行する。
$ cd your_project/
$ pod spec create YourLibraryName
YourLibraryName
は自作ライブラリの名前に置き換えてください。
こんなメッセージが出れば成功。
Specification created at YourLibraryName.podspec
4. Podspec ファイルをカスタマイズ
プロジェクトのルートに podspec
ファイルが生成されているはずである。
このファイルを開き,ファイル内のコメントに従ってライブラリの情報を記載していく。
文法に関する公式ドキュメント:
CocoaPods Guides - Podspec Syntax Reference
記載した内容が正しいかどうかは,以下コマンドで確認できる。
ちょっとだけ時間がかかるようなので少し待つ。
$ pod lib lint
5. ユーザ登録(初回のみ)
以下コマンドで CocoaPods にユーザ登録する。
登録したメールアドレス宛に本人確認用の URL が届くので,アクセスして Confirm してください。
$ pod trunk register [email protected] yourname
メールアドレスとユーザ名はご自身のものに置き換えてください。
登録後,自分の登録情報は以下コマンドで確認できる。
$ pod trunk me
6. 公開する
podspec
ファイルに記載した spec.version
と同じタグを main (master) ブランチに push しておいてください。
形式は 1.0.0
などの三桁区切りである必要がある。
その後,以下コマンドで登録。
$ pod trunk push YourLibraryName.podspec
登録が完了すると,CocoaPods の URL が発行される。
CocoaPods Web ページから検索できるようになるには数日ほどかかるっぽい。
https://cocoapods.org/pods/YourLibraryName
登録したライブラリは以下コマンドで削除することもできる。
$ pod trunk delete YourLibraryName 1.0.0
削除するバージョンは自身のものに置き換えてください。
トラブルシューティング
筆者環境では GitHub の認証情報を .netrc
に記載していたが,ユーザ登録の際にエラーが発生。
Netrc::Error - Permission bits for '/Users/username/.netrc' should be 0600, but are 644
エラーメッセージによると .netrc
は 644 じゃなくて 600 にしてねってことなので,以下コマンドで変更した。
$ chmod 600 /Users/username/.netrc
参考:
Error on pod trunk push · Issue #7555 · CocoaPods/CocoaPods
参考:
CocoaPodsでiOSのライブラリーを作ってみる - Qiita
Swiftで自作ライブラリを公開する手順 - Qiita