Thursday, December 1, 2011

make testflight

Xcode の Organizer を使って IPA を生成してから、ブラウザからアップロードするのは面倒なので、ネット上には Testflight upload API を使ってアップロードを自動化するスクリプトはいくつか転がっていますが、 xcarchive のパス, Code sign identity, API token, Team token などの設定が自動化されていないのしか見つけれられなかったので Makefile を書いて見ました。

特筆すべき必要条件

  • Xcode 4 の設定項目についてのある程度の知識
  • ruby 1.9.x or `gem install json`

準備

Build Phases の最後に "Run Script" を追加。

ここで CODE_SIGN_IDENTITY を Makefile から参照するためにファイルに保存しているのですが、 "Automatic Profile Selector" を利用している場合は、 CODE_SIGN_IDENTITY の値は "iPhone Distribution" だけで署名者名が入らないので、固有の Identity を選択するようにしてください。

Xcode scheme の "Archive" build action の Post-actions に "Run script" を追加。

通常 scheme は "shared" しない設定にしてリポジトリに追加しないようにしていると思います。なので、この Post-action を設定する scheme は "XXX-testflight" みたいな名前で "duplicate" して "shared": on, "show": off にしてリポジトリに追加すると、共有できて Xcode の scheme 選択からも見えなくなるのでいいかと思います。

あとは、プロジェクトのディレクトリに Makefile を置いて、 `make testflight` を実行するだけです。 Testflight のノートを入力するフォームが開くのでノートを変更して配信先を選択してください。

初回実行時には "Team Token" と "API Token" の入力を要求されるので、ブラウザに Testflight のセッションが残っていれば、表示されるはずなのでコピペしてください。

Xcode の archive から実行したい人は、 Makefile を fork して工夫してみてください。