こんにちは。 コンテンツメディア事業部で主にピクトリンクアプリを開発している盛岡です。
初めての連続ブログ投稿です。
突然ですが最近の悩み事として、iTunes Connectが利用者にやさしくないってことがありました。今回は、それがうまく解決したので紹介します。
やさしくない?
iOSアプリを公開する場合には、ざっくりと以下のような手順を踏むことになります。
- iTunes Connectにて新規リリースバージョンの登録
- iOSアプリを実装・ビルド
- ビルドしたiOSアプリのアーカイブをiTunes Connectへアップロード
- iTunes Connectからレビュー対象ビルドを選択しレビュー申請
この中のステップ3〜4の間で、iTunes Connect側で対象ビルドを選択できず「処理中」というステータスになることがあります。
以前は10分程度で完了していたのですが、最近だと平均2時間… ひどい時だと半日待ちという状況があります。
またTIPSとしてiTuens Connectを表示しているブラウザを変えてみるとか、再度ビルドアーカイブをアップしたら行けた!みたいな報告があったり、iOSアプリ開発における”闇”な感じが漂っているこのごろです。
fastlaneとwatchbuild
世界中みんな困っているらしく、以前にも少し触れたfastlaneというプロジェクトにて”iTunes Connect処理中待ち確認ツール”そのものずばりが公開されているようです。それが「watchbuild」です。
- fastlane
fastlaneについてもう少し説明しておくと、「Continuous Delivery for iOS Apps」を達成するための、iOSアプリのリリースにまつわる工数削減やコマンドラインツール化を提供するプロジェクトです。 最近Twitter Fabricに組み込まれましたね。
その中でwatchbuildはコマンドラインツールとして提供されており、上記の処理待ち状態の確認作業を代行してくれます。
早速使ってみる
以下のgithubプロジェクトでソースコードとインストール方法など提供されています。
https://github.com/fastlane/watchbuild
基本的には上記URLどおりにインストールするだけです。 Ruby gemsがインストールされていればうまく行くはずです。
早速実行した結果を見てみましょう。
morioka$ watchbuild -a jp.furyu.xxx.xxx -u xxx@xxx.com
+----------------+---------------------------+
| Summary for WatchBuild 0.1.1 |
+----------------+---------------------------+
| app_identifier | jp.furyu.xxx.xxx |
| username | xxx@xxx.com |
+----------------+---------------------------+
[11:08:55]: Starting login with user 'xxx@xxx.com'
[11:08:56]: Successfully logged in
[11:09:03]: Waiting iTunes Connect processing for build 1.0.1 (4)... this might take a while...
[11:09:35]: Waiting iTunes Connect processing for build 1.0.1 (4)... this might take a while...
[11:10:07]: Waiting iTunes Connect processing for build 1.0.1 (4)... this might take a while...
-- 省略 --
[13:05:34]: Waiting iTunes Connect processing for build 1.0.1 (4)... this might take a while...
[13:06:06]: Successfully finished processing the build
[13:06:06]: You can now tweet:
[13:06:06]: iTunes Connect #iosprocessingtime 117 minutes
iOSアプリのidentifierとiTunes Connectのログインアカウントを指定して実行します。初回実行時にiTunes Connectのログインパスワードが聞かれます。
上記実行結果を見てもらうと分かると思いますが、数十秒おきにループしてくれてますね。処理中が完了すると、”Successfully finished processign the build”と出力されて完了する感じです。
今回は117分間もがんばってもらってました。偉い!
まとめ
エンジニアにとって改善活動を行うことは重要ですが、思わぬところで時間を取られている場合の対応については見逃しがちでした。
今回は世界中の誰しもが困っていることだったので、解決してくれる人が居たので助かりました。今後については、似たような待ち作業が発生した時にただ待つだけではなく、自分でソフトウェアを書いて解決した方が良さそうなパターンもあるのだなと勉強になりました。
みなさんも良いエンジニアライフをお過ごしください。