「Swift Packagesによるライブラリの作成方法」は4部構成です。
記事を順番に読み進めると、Swift Packagesでライブラリを自作して公開できるようになります。
- 第1部: Swift Packagesでライブラリを自作する
- 第2部: 自作パッケージをSwift Package Indexに追加する
- 第3部: 自作パッケージをCocoaPodsに追加する
- 第4部: 自作パッケージをCarthageに対応する ←イマココ
はじめに
自作パッケージをCarthageに対応する方法を紹介します。
環境
- OS: macOS Big Sur 11.4
- Xcode:12.4 (12D4e)
- Swift:5.3.2
- swift-tools:5.3
Carthageへの対応方法
自作パッケージがあれば、CarthageへはXcodeプロジェクトを生成するのみで対応できるので、その手順を紹介します。
パッケージを自作する
自作パッケージがなければ始まりません。
以下の記事を参考にパッケージを自作します。
Xcodeプロジェクトの生成
swift package generate-xcodeproj
でXcodeプロジェクトを生成します。
$ swift package generate-xcodeproj
warning: Xcode can open and build Swift Packages directly. 'generate-xcodeproj' is no longer needed and will be deprecated soon.
generated: ./StringTransform.xcodeproj
これだけでOKです。
私はプロジェクトの設定を変更すらしませんでした。
generate-xcodeproj
はもうすぐ非推奨になるとのことです。
パッケージの開発は Package.swift
をXcodeで開いて行い、Xcodeプロジェクトは使わないようにします。
Xcodeプロジェクトをバージョン管理する
すでに .xcodeproj
ファイルをバージョン管理の対象外にしている場合、削除するかコメントアウトします。
- /*.xcodeproj
+ # /*.xcodeproj # Use only with Carthage
私はXcodeプロジェクトをCarthageのみで使っていることを明示するために、コメントアウトしてコメントを書いています。
これでCarthage対応は完了です。
おまけ:Carthageのバッジ
以下のバッジをREADMEに付けることで、Carthageに対応していることを表せます。
おわりに
自作パッケージをCarthageに対応することができました!
自分のパッケージがCarthageで使えるようになるのはとても嬉しいです
参考リンク
- Carthage/Carthage: A simple, decentralized dependency manager for Cocoa
- Gedatsu/Gedatsu-Carthage.xcodeproj at 1.2.0 · bannzai/Gedatsu
- [Swift] 自作のパッケージをCocoaPods、Carthage、Swift Package Manager対応させる | エンジニアもどきの技術メモ
- Release Carthage by uhooi · Pull Request #9 · uhooi/swift-string-transform
- https://twitter.com/the_uhooi/status/1405866818355359744?s=20