読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

Xcode BotでCocoaPodsを使う(あと、Botについてのメモ)

結論

PodsディレクトリをGit管理すれば良い。(Git管理しないでBot使う方法は不明)

もしくは

Botを使わずにJenkinsを使う。(一番おすすめ)

Botについてのメモ

ぼくはいつもPodsディレクトリをGit管理しない派なんですけど、これでBotを動かすことができませんでした。

色々試したんですが、ずっと次のようなエラーでまったくダメでした…

Diff: /../Podfile.lock: No such file or directory
Diff: /Manifest.lock: No such file or directory
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

一応、Botに関するメモを残しておきます。

色々試す際に参考にしたのはこれです。

実行ユーザー関連

Botが動くときのユーザーは_teamsserverでHOMEディレクトリは/var/teamsserver

ぼくはRubyはrbenvを使ってるんですけど、ユーザー違うから使われるRubyはシステムに元々入ってるやつです。なのでCocoaPodsもそっちに入れないとダメです。

$ rbenv global system
$ sudo gem install cocoapods

あと、HOMEディレクトリの/var/teamsserverはデフォルトで存在しないので作ってあげる必要があります。

$ sudo mkdir /var/teamsserver
$ sudo chown _teamsserver /var/teamsserver

環境変数まわり

参考にした記事にはBuildのpre-actionに cd ${SRCROOT} って書いてあったんですが、これが定義されてませんでした。あとPODS_ROOTも定義されてないっぽいです。

たぶん色々と環境変数があやしいですが、この辺よく分かってません…

調べたらWORKSPACE_PATHは定義されてたので、次のようなスクリプトを試したんですけどダメでした。

cd ${WORKSPACE_PATH}
cd ../
pod install

その他Botについてのメモ

  • OS X Server内にGitのリポジトリ持てるけど、GitのWebインターフェース的なものが無い。
  • XcodeからBotの状態を見るにはXcodeからBotを必ず作る必要ある(Webからも作れるけどXcodeから参照できない)
  • 通知がメールしかない。(ぼくはメールすら飛ばなかった。設定なんかあるのかな?)
  • テストのカバレッジとか取れない?(ちゃんとは調べてない)
  • 実行中のログがリアルタイムで見れない(時間かかってる場所が分からない)
  • BotでArchiveして配布できるけど、やはりTestFlightのほうが良い。
  • 見た目だけはキレイ。

まとめ

CocoaPodsつかうならXcode Botはやめたほうがいいですね。

というか、ぼく個人的には拡張性・柔軟性が低すぎるので最初からJenkinsのほうが良いと思います。

OS X Serverに2000円だすなら別のものに使ったほうが良いですよ。