2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?