CircleCI から altool を使って iTunesConnect にアップロードするときにコマンドが無いと言われた時の対処方法

インフラ / 開発 hironemuhironemu

あるプロジェクトで CircleCI を使って iOS のビルドをするというお仕事があったので、以下の記事を参考に設定を行いました。

Circle CIでiOSアプリのリリース作業を自動化

iTunesConnect に IPA ファイルをアップロードする際 altool というコマンドを使うのですが、あるときからこのコマンドが PATH からなくなっていたためアップロードに失敗するようになっていました。もともと、以下の PATH を circle.yml に設定したのですが、このディレクトリがなくなっていたようです。

PATH: $PATH:/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support</pre>

ということで、サポートに問い合わせてみたところ、以下のコマンドで探すと良いと言われたので設定すると、うまいこと altool を探してくれるようになりました。

export PATH=$PATH:$(dirname "$(find $(dirname $(xcode-select -p)) -name altool | head -1)")

このコマンドでは、xcode-select -p で Xcode のインストールディレクトリを探し、そのディレクトリ以下を find コマンドで altool を検索し、さらにそのディレクトリを PATH に追加しています。

CircleCI はチャットでサポートをしてくれるので、なにか困ったことがあると色々聞いてみると良いです。導入時の右も左も分からないようなときには特に重宝すると思います。(英語でのサポートですが、私のしょぼい英語でも読み取ってくれるのでなんとかなると思います・・。)また、日本時間の昼間とかでも返事が返ってくるので、そこもいいところですね。