更に後日
今はpod repo push
使ってます。
後日談
エラー処理とかちゃんと書いてなく激しくバギーでトラブルが発生した場合に逆に時間がかかるから今は手作業だよ!!!!
はい、手動でやってます。
数えた所ここ2ヶ月で100回程度更新しているので、1回1分計算でpodspecの更新にきっと100分くらい費やしていることになります。
pushしたらtagをインクリメントしてpodspecを更新して作業中のプロジェクトでpod updateまでしてくれる簡単な方法ないのかな・・・
— yusuga (@yusuga_) 2014, 3月 18
そんな疑問をつぶやいたところ
@yusuga_ そういうのは地味なスクリプトを書くぐらい。
— もっさりさん (@TeamMOSA2) 2014, 3月 18
@yusuga_ 入門bash
— ふぐ (@tenchu0314) 2014, 3月 18
という諸先輩方の温かいご助言がありましたが、bashを書いたことないので
bashのお作法を覚える > Objective-Cで書く
という結論からObjective-Cでupspecを作りました。UNIX実行ファイルが出来上がります。
いくつかの前提
- 僕は汎用ライブラリはGitHubで、プライベートなライブラリは別サーバで管理しています。
- なので本家のCocoaPods/Specsの話ではないですよ
├── podspec
└── project1
└── 0.0.1
└── project1.podspec
└── 0.0.2
└── project1.podspec
└── project2
└── 0.0.1
└── project2.podspec
├── project1
└── project2
ローカルはこんなディレクトリ構成で運用しています。
- podspecでバージョンを上げるだけの本当に単純な更新の話です。
出来ること(※上記フォルダ構成)
- project1で必要なcommitを全て済ます
- project1で
upspec
を実行
すれば
- project1にgit tag 0.0.3を追加
- project1をgit push
- podspec/project1/0.0.3/project1.podspecを生成(0.0.2のコピー)
- podspec/project1/0.0.3/project1.podspecのs.versionを0.0.3に更新
- podspecをgit push
が実行されます。
導入方法
- upspec.xcodeprojをビルド
-
upspec/upspec/Build/Products/Debug/
にupspec
というUNIX実行ファイルが出来てるのでそれを/usr/bin
とかパスが通っているところに適宜置く
課題
- 今作業しているプロジェクトでのpod updateまで行いたかったのですが、複雑になりすぎるので諦めました。(実装が複雑というか運用し辛い場面が多そう)
- ビルドした後のUNIX実行ファイルを'/usr/bin'に直接置く方法がわからなかった。(ここを参考に試してみたけどDebugとかReleaseをディレクトリを作成しないって出来るのかな・・・)
bashのスゴイ人へ
これbashを熟知してる方だったらどれくらいで書けるものなんでしょうね。僕はbashの各コマンドやら正規表現とかを調べるならFoundation.frameworkを使った方が早いと思った次第です。全部で4時間くらいかかりました。(結局bashを調べなきゃダメだったし、OS XとiOSとの違いでつまづいた所も・・・)
あと400回podspecを更新すれば元が取れる計算です。
よくありそうな質問
-
そもそもpodspecってそんな更新しないよね
そうなんですか?(;´Д`) 僕はversionだけ更新することすごい多いんですが・・・
-
こんなディレクトリ構成で運用してねぇよ
・・・コードを書き換えて下さい(;´Д`)
-
s.version決め打ちにしてるよね、などなど
・・・コードを書き換えて下さい(;´Д`)
免責事項
一応書いておきますが、upspecの使用によって生じる損害の責任は負いませんので、使用は 自己責任 でお願いします!