CocoaPods を前のバージョンに戻す

Cocoa プログラミング

CocoaPods をバージョンアップしたところ、ビルドした OS X アプリをコード署名できなくなったことがありました。

そんな時に CocoaPods を以前のバージョンに戻す方法です。


いつものように OS X アプリをアーカイブして Developer ID 署名アプリとしてエクスポートしようとしたところ、コード署名ができないというエラーになってしまいました。

An error occurred during export

Codesign failed

過去に署名できていたアーカイブを再署名できたので、電子署名がおかしくなっていることではない様子です。そして、署名ができていた最近のコミットに戻して再アーカイブしてみても署名できないようでした。


そうして心当たりを探ってみていたところ、今回の署名できない問題は、ライブラリ管理ツール CocoaPods をバージョンアップしたのが原因だったことがわかりました。

どうやら CocoaPods を 0.39.0.beta.5 から 0.39.0.rc.1 または 0.39.0 にアップデートしたタイミングで今回のエラーが発生する様子でした。

そこで今回はインストールしている CocoaPods のバージョンを前のバージョンに戻してみることにしました。

CocoaPods を以前のバージョンに戻す

以前に使っていたバージョンに戻したい場合

戻したいバージョンを以前に使っていた場合は簡単で、ターミナルから次のコマンドを実行します。

sudo gem uninstall cocoapods

このようにすると、現在インストールされているバージョンがリストで表示されるので、不要なものを選択して削除することができます。

Select gem to uninstall:
 1. cocoapods-0.37.1
 2. cocoapods-0.37.2
 3. cocoapods-0.38.0.beta.2
 4. cocoapods-0.38.0
 5. cocoapods-0.38.2
 6. cocoapods-0.39.0.beta.4
 7. cocoapods-0.39.0.beta.5
 8. cocoapods-0.39.0
 9. All versions
> 

今回であれば 0.39.0.beta.5 までが期待通りに動作していたバージョンなので、それ以降の CocoaPods を削除することによって、バージョンを元に戻すことができました。

リストで指定しなくても SOURCE sudo gem uninstall cocoapods -v 0.39.0.rc.1 のようにすることで、指定したバージョンの CocoaPods を削除できます。また、現在の CocoaPods のバージョンが幾つかは pod --version コマンドで確認できます。

特定のバージョンをインストールしたい場合

戻したいバージョンがシステムにインストールされていない場合は、次のようにバージョンを明示してインストールします。

sudo gem install cocoapods -v 0.39.0.beta.5

このようにすることで、指定したバージョンの CocoaPods をインストールできます。

インストールしたバージョンよりも新しいものがインストールされている場合はそれが優先して使われるようなので、新しいバージョンのものを上で紹介した方法で削除してあげると、ここでインストールしたバージョンの CocoaPods が利用できるようになります。