2
2

More than 3 years have passed since last update.

iOSアプリのビルドからTestFlightアップロードまでの作業を自動で行う

Posted at

どうも、現在子供が夏休みのため義実家の神戸に帰省して子供を義母と義祖母とに見てもらいながらぬくぬくリモート勤務を行なっているiOSエンジニアのkaです。

テスト用アプリを配布するためにTestFlightを利用しているのでいっつもポチポチクリックしている作業を自動化します。

現在配属されているプロジェクトはiOSエンジニアは一人なのでまだCIは利用していませんが、少し変更すればすぐに対応できると思います。

結論

このシェルスクリプトでOKです

shell.sh
#!/bin/bash
readonly PROJECT_DIR="プロジェクトディレクトリ"
readonly WORKSPASE="ワークスペース名"
readonly SCHEME="スキーム名"
readonly ARCHIVE_DIR="アーカイブ作成ディレクトリ"
readonly EXPORT_PATH="ExportOptions.plistを指定(後述)"
readonly USER="AppStoreConnectで利用するAppleID"
readonly PASS="App用パスワード(後述)"

cd $PROJECT_DIR

rm -rf $ARCHIVE_DIR
mkdir $ARCHIVE_DIR

xcodebuild -workspace ./$WORKSPASE.xcworkspace \
    -scheme $SCHEME \
    -configuration Release \
    archive \
    -archivePath $ARCHIVE_DIR/build

xcodebuild -exportArchive \
    -archivePath $ARCHIVE_DIR/build.xcarchive \
    -exportPath $ARCHIVE_DIR \
    -exportOptionsPlist $EXPORT_PATH

xcrun altool --upload-app \
    -f $ARCHIVE_DIR/$SCHEME.ipa \
    -t ios \
    -u $USER \
    -p $PASS \

補足

ExportOptions.plistに関して

これは一度手作業でAppStore用にアーカイブをエクスポートすると自動で生成してくれるのでそれを使うのが良いです。

xcrun altoolに関して

引用: https://qiita.com/messhi/items/cb8c6f2b4b6540995189
こちらを参考にしていますが、実際にJenkinsなどで運用する場合にはこちらの記事の後半にあるAPI-Keyを使う方法でやるのが良いと思います

App用パスワードに関して

AppleIDのページで生成します

[セキュリティ]で、[App用パスワード]の[パスワードを生成…]をクリックします。

引用: https://qiita.com/uhooi/items/ec9dcd480a04bce8a963

終わりです

Brewus,Inc.
株式会社ブリューアス
https://brewus.co.jp

2
2
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
2
2