Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TestFlight自動化でらくらくチームテスト

5,918 views

Published on

2013/0303

Published in: Technology
  • Be the first to comment

TestFlight自動化でらくらくチームテスト

  1. 1. TestFlight自動化で らくらくチームテスト 【修正版】 2013/03/03 Retty株式会社櫻井 洋一郎 (@saku2saku)
  2. 2. iPhone Developer WorkshopiPhoneアプリ開発者の交流技術情報の交換 比較的初心者の方も多いです
  3. 3. 一緒にまったり アプリ開発の勉強を していきましょう!src: http://www.pakutaso.com/201201photo118post-1426.html
  4. 4. TestFlight自動化でらくらくチームテスト
  5. 5. 自己紹介名前:櫻井 洋一郎 (@saku2saku)お仕事:プログラマ(Retty株式会社)    フリーでもやるでよ趣味:漫画を読みあさる   プログラミング   料理
  6. 6. 今までの製作iPhoneアプリiPadアプリWeb Symfony, Code igniter, WordPress, etc
  7. 7. TestFlightって?アプリのβテストを配布できるサービス
  8. 8. どんなことができるの?チームメンバーにメール通知Webサイトからのアプリダウンロードチームメンバーの状態確認 メール通知済/アプリインストール済/etc
  9. 9. 通常の使い方アカウント作成 バイナリ作成プロジェクト作成 バイナリアップロードメンバー登録 メンバーへのアプリ登録通知デバイス登録 メンバーのアプリダウンロード
  10. 10. 問題点バイナリ作成とアップロードが結構めんどい src: http://www.pakutaso.com/201209photo212post-1772.html
  11. 11. 具体的な手順アプリをアーカイブアーカイブファイルをipaファイルに作成されたdSYMファイルをzip化テストフライトを開くバイナリアップロードdSYMファイルのアップロード配布先ユーザの選択して通知メールを送信
  12. 12. うわっ…、私の手順、 多すぎ…?! src: http://www.pakutaso.com/201203photo114post-1412.html
  13. 13. というわけでこれらを自動化しちゃいましょう
  14. 14. 自動化案:JenkinsCI(Continuation Integration)ツールのひとつコミットをフックして、ビルド・テスト・コード標準チェックなどできるプラグインで機能拡張可能 でも配布だけしたいのであれば オーバースペック・・・
  15. 15. プラグ イン ーバ e bサW バ サ ー トリ ポジ 細 リ か い 設 ・・・ 定
  16. 16. 要するに配布手順だけ誰でもできるように自動化したい
  17. 17. スクリプトで1発実行できれば良いよね!
  18. 18. 自動化の方法バイナリのアーカイブ xcodeのコマンドを使うアプリのアップロードと配布 TestFlight Upload API
  19. 19. xcode のコマンドxcodebuild CleanやBuildを実行しますxcrun プロビジョニングファイルを指定して ipaファイルを作成する
  20. 20. xcodebuildClean xcodebuild clean -project "${PROJ_FILE_PATH}"Build xcodebuild -project "${PROJ_FILE_PATH}" -sdk "${SDK}" -configuration "${CONFIGURATION}" -target "${TARGET_NAME}" CONFIGURATION_BUILD_DIR="${OUT_IPA_DIR}"
  21. 21. xcodebuildのパラメータ${PROJ_FILE_PATH} :.xcodeprojファイルのパス${SDK}:"iphoneos"固定${CONFIGURATION}:Build対象のコンフィグ名(Adhoc)${TARGET_NAME}:Build対象のターゲット名${OUT_IPA_DIR}:IPAファイル等の出力先フォルダ
  22. 22. xcrunxcrun -sdk "${SDK}" PackageApplication "${PRODUCT_NAME}" -o "${IPA_FILE_NAME}"※ -embed "{$PROVISIONING_PATH}" は不要 プロビジョニングファイルは指定したビルド設定 のものを見るので指定の必要無しでした m(_ _)m
  23. 23. xcrunのパラメータ${SDK}:"iphoneos"固定${PRODUCT_NAME}:出力するappファイル名${IPA_FILE_NAME}:出力するipaファイル名
  24. 24. TestFlightのコマンドzip dSYM ファイルをzip化curl コマンドラインでWebAPIをたたく
  25. 25. zipzip -r $ZIP_DSYM_FILE_NAME$DSYM_DIR_NAME$ZIP_DSYM_FILE_NAME:zipファイル名$DSYM_DIR_NAME:dSYMのパッケージパス
  26. 26. curlcurl http://testflightapp.com/api/builds.json -F file=@$IPA_FILE_NAME -F dsym=@$ZIP_DSYM_FILE_NAME -F api_token=api token -F team_token=team token -F notes="$NOTES" -F notify="$NOTIFY" -F distribution_lists="$DISTRIBUTION_LISTS"https://testflightapp.com/api/doc/
  27. 27. TestFlight Upload API のパラメータ$IPA_FILE_NAME:IPAファイルのパス@$ZIP_DSYM_FILE_NAME:dSYMのzipファイルのパスapi token:TestFlightのAPIトークンteam token:TestFlightのteamトークン$NOTES:TestFlightで通知するメールの本文 (True / False)$NOTIFY:テストバイナリの配布通知メールを送るかのフラグ$DISTRIBUTION_LISTS:配布対象者のリスト
  28. 28. 各種トークンの確認方法APIトークンの入手 https://testflightapp.com/account/#apiチームトークンの入手 https://testflightapp.com/dashboard/team/ edit/?next=/api/doc/
  29. 29. DISTRIBUTION_LISTS とは?配布対象のプリセット People -> Add Distribution List で追加可能
  30. 30. 最終成果物 TestFlight.shusage: TestFlight.sh -m message [-h] [-l lists] [-e env] [-n need notify]-m: TestFlight message-h: show command help-l: developer lists (developer[default])-e: build envirionment (Adhoc[default])-n: need notify(True[default] / False)ex) sh TestFlight.sh -m "test message" -l team -e Adhoc -n False
  31. 31. ファイルのDL勉強会公式サイトからDLできますhttp://workshop.iphonework.biz/files/2013/03/TestFlight.zip 環境変数をご自身の環境に合わせて 変更してください
  32. 32. めんどうな作業をいつ自動化するの?
  33. 33. 今でしょ!
  34. 34. ご清聴ありがとうございました

×