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

5,642 views

Published on

2013/0303

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,642
On SlideShare
0
From Embeds
0
Number of Embeds
2,442
Actions
Shares
0
Downloads
13
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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. ご清聴ありがとうございました

×