LoginSignup
113
120

More than 5 years have passed since last update.

ビルドからTestflight配信までやるコマンド作った

Last updated at Posted at 2013-10-05

毎度のことなんだけども、testflightに配信しようとすると

  • Xcodeでアーカイブして
  • Organizerからipaファイル吐かせて
  • testflightにアップして
  • リリースノート書いて
  • いつものメンバーに配信する

みたいなフローが必要だったので、面倒になってスクリプトにまとめてしまった。

やってること

流れとしては、

  • アーカイブする
  • ipaファイル作る
  • リリースノート書く
  • testflightのUpload APIに配信する

と言った感じ。

ちなみに大抵Cocoapods使ってるのでxcworkspaceのある環境が対象です。そうでない人は適当にxcodebuild部分だけ書き換えてください。

testflight
#!/bin/sh

# applicationの名前
APP="hoge"
# SDK
SDK="iphoneos7.0"
# ビルド時の設定
CONFIGURATION="Release"
# 出力先
OUT_DIR="build"
# ワークスペース名
WORKSPACE="hoge.xcworkspace"
# ワークスペース内のビルド対象スキーム
TARGET="hoge"
# PROVISIONING FILE
PROVISIONING="*****-****-****-****-****"

# TESTFLIGHTのAPIトークン
TESTFLIGHT_API_TOKEN="your api token"
# TESTFLIGHTのAPIトークン
TESTFLIGHT_TEAM_TOKEN="your team token"
# TESTFLIGHTの配布対象チーム
TESTFLIGHT_TEAM="Your distribution team"

# ビルドする
if [ -a build ]; then
    echo "Remove existing build dir."
    rm -R build
fi

# ビルド
xcodebuild -workspace "${WORKSPACE}" -sdk "${SDK}" -configuration "${BUILD_SCHEME}" -scheme "${TARGET}" clean build CONFIGURATION_BUILD_DIR="$(PWD)/${OUT_DIR}" PROVISIONING_PROFILE="${PROVISIONING}"

# IPAファイル化
xcrun -sdk "${SDK}" PackageApplication "${OUT_DIR}/${APP}.app" -o "$(PWD)/${OUT_DIR}/${APP}.ipa" --embed "${PROVISIONING}.mobileprovision"

# リリースノート作成
vi "${OUT_DIR}/release.txt"

# 存在しない場合はとりあえず空ファイル用意しておく
if [ ! -f "${OUT_DIR}/release.txt" ]; then
    touch "${OUT_DIR}/release.txt"
fi

# テストフライトへ送信
curl http://testflightapp.com/api/builds.json \
    -F file="@${OUT_DIR}/${APP}.ipa" \
    -F api_token="${TESTFLIGHT_API_TOKEN}" \
    -F team_token="${TESTFLIGHT_TEAM_TOKEN}" \
    -F notes="@${OUT_DIR}/release.txt" \
    -F notify=True \
    -F distribution_lists="${TESTFLIGHT_TEAM}"

これを作業ディレクトリにtestflightって名前などで配置してchmod a+x testflightして./testflightすれば、アーカイブ始まって、完了後にviが起動するのでリリースノート書いて保存すればtestflightで配信されます。

便利。


追記

build/ディレクトリは多分デフォルトで.gitignoreに記載されてると思いますが、無い場合は追記、もしくはOUT_DIRで別なディレクトリを指定してください。

113
120
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
113
120