LoginSignup
1
1

More than 5 years have passed since last update.

CocoaPodsでインストールできるオリジナルライブラリを作成する(3)

Last updated at Posted at 2016-07-01

目次

CocoaPodsでインストールできるオリジナルライブラリを作成する(1)
CocoaPodsでインストールできるオリジナルライブラリを作成する(2)
CocoaPodsでインストールできるオリジナルライブラリを作成する(3)
CocoaPodsでインストールできるオリジナルライブラリを作成する(4)

注意

この話を書く上の例として、
自作ライブラリの名前として "NeroBlu" という名前をつけています

これは自分の屋号から取ってきた名前なので、ただの「サンプル名」としてご認識ください
名前は各自でご自由につけなおしてくださいね

まえがき

ライブラリである以上、メンテナンスすることは絶対あります
それはバグ修正であったり、機能追加であったり、、

なので、ライブラリの中身を修正すれば
それを使用しているプロジェクトは最新のものをインストールしていきたいものですが、

単純にそういうわけにもいかないこともありますねぇ

ライブラリの中身の修正により
今まで動いていたものが動かなくなることもあります

なので、CocoaPods の利点であるバージョン指定でそれを解決したい

手段としては、

  • タグを使う方法
  • リリースを使う方法

が、あると思いますが、今回はタグを使う方法を書きたいと思います

タグ付け

前回までのコミットに対して、git上でタグを付けます
タグ名は "1.0.0"としておきます

で、
前項で作った String+Echo.swift を少し書き換えます

String+Echo.swift
import UIKit

public extension String {

    public func echo() {
        print("ver 1.1: \(self)")
    }
}

podspec1.0.0 ではなく、1.1.0 に書き換えてみます

NeroBlu.podspec
d::Spec.new do |s|
  s.name         = "NeroBluTemp"
  s.version      = "1.1.0"
  s.summary      = "NeroBlu: Library for iOS."
  s.description  = ""
  s.frameworks   = "Foundation", "UIKit"
  s.source       = { :git => "https://github.com/xxxx/NeroBlu" }
  s.source_files = "NeroBlu/*"
end

これで git push します
すると、NeroBluTempライブラリは、1.1.0 が最新となり
使用する側で pod install してやると

-> Installing NeroBluTemp (1.1.0)

と、見事に 1.1.0 がインストールされると思います

さて、これで前項で実装した

ViewController.swift
import UIKit
import NeroBluTemp

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        "Hello".echo()
    }
}

のソースコードそのままで実行してみると

ver 1.1: Hello

コンソールにこのように1.0.0 にはなかった出力がなされました

バージョン指定

さて、次はバージョンを 1.1.0 にはしたくない場合です

Podfile にこのように書きなおします

use_frameworks!

pod 'NeroBluTemp', :git => 'https://github.com/xxxxx/NeroBlu', :branch => 'temporary’, :tag => ‘1.0.0’

:tag => ‘1.0.0’ を追記しました
これで、さきほどタグ付けしたコミットが、バージョン1.0.0 として扱われます

試しに pod install を行います

-> Installing NeroBluTemp 1.0.0 (was 1.1.0)

1.1.0 だったものが 1.0.0 に差し戻されたことがログで確認できます

再度実行してみると

Hello

と、バージョン1.0.0 時の挙動でコンソール出力されたかと思います

修正ごとに面倒ですがバージョンを切っていけば、
後々に影響を受ける自分のプロジェクトは少なくなりますね

あとがき

最初にも書きましたが、本来はリリースによってバージョン管理したいところ

自分のためだけに使うならタグの方法でいいのですけど
誰かに公開、共有するなら
Podfile~>1.0 という書き方でバージョン指定ができればと思うんですが・・・

ちょっとそこまで研究できてないので
今回は割愛します

また試したら書きます・・・。

1
1
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
1
1