Bitrise から App Store へアプリをデプロイする
0.はじめに
iOS アプリを提供するにあたって、Bitrise を使って、App Store へデプロイする手順を試してみました。
Git リポジトリは、GitHub を利用。
1.Worlflows
- Activate SSH key (RSA private key) : ※デフォルト
- Git Clone Repository : ※デフォルト
- Bitrise.io Cache:Pull : ※デフォルト
- File Downloader
- Replaces Xcode's project PRODUCT_BUNDLE_IDENTIFIER
- Set Xcode Project Build Number
- Set Xcode Plist Value (〜)
- Script
- Certificate and profile installer : ※デフォルト
- Recreate User Schemes
- Run CocoaPods install
- Xcode Archive & Export for iOS
- Deploy to Bitrise.io - Apps, Logs, Artifacts : ※デフォルト
- Bitrise.io Cache:Push : ※デフォルト
- Deploy to iTunes Connect - Application Loader
File Downloader
- Input variables
- Download source url
- [ダウンロードファイルパス]
- Download destination path
- [ダウンロード保存先ファイルパス]
- Download source url
Replaces Xcode's project PRODUCT_BUNDLE_IDENTIFIER
- Input variables
- Xcode project path
$BITRISE_SOURCE_DIR/$BITRISE_XCODEPROJ_PATH
- New bundle identifier
$BUNDLE_IDENTIFIER
- Xcode project path
Set Xcode Project Build Number
- Input variables
- Info.plist file path
$BITRISE_SOURCE_DIR/$BITRISE_SCHEME/$BITRISE_SCHEME/Info.plist
- Version Number
$CFBundleShortVersionString
- Info.plist file path
Set Xcode Plist Value
- Input variables
- Info.plist file path
$BITRISE_SOURCE_DIR/$BITRISE_SCHEME/$BITRISE_SCHEME/Info.plist
- Plist key
- [Info.plist の置換するキー]
- Plist value
- [Info.plist の置換するキーの値]
- Info.plist file path
Script
#!/usr/bin/env bash
# fail if any commands fails
set -e
# debug log
set -x
# write your script here
echo "Hello World!"
ls -la
ls -la ${BITRISE_SCHEME}
ls -la ${BITRISE_XCODEPROJ_PATH}
# Code Signing (project.pbxproj)
export PROJECT_PBXPROJ_PATH=${BITRISE_XCODEPROJ_PATH}/project.pbxproj
sed -i -e 's|DEVELOPMENT_TEAM .*;|DEVELOPMENT_TEAM = [Apple Developers Team ID];|g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|CODE_SIGN_IDENTITY .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|PROVISIONING_PROFILE .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|PROVISIONING_PROFILE_SPECIFIER .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|CODE_SIGN_STYLE .*;|CODE_SIGN_STYLE = Manual;CODE_SIGN_IDENTITY = "iPhone Distribution";PROVISIONING_PROFILE_SPECIFIER = [Code Signing に登録したプロビジョニングファイルの名称];|g' ${PROJECT_PBXPROJ_PATH}
cat ${PROJECT_PBXPROJ_PATH}
# Info.plist
cat ${BITRISE_APP_PATH}/Info.plist
cat ${BITRISE_APP_PATH}/GoogleService-Info.plist
# Pods Deintegrate & Cache Clean
cd ${BITRISE_SCHEME}
gem install cocoapods --pre
pod deintegrate
pod cache clean --all
rm -f Podfile.lock
ls -la
# or run a script from your repository, like:
# bash ./path/to/script.sh
# not just bash, e.g.:
# ruby ./path/to/script.rb
Code Signing (project.pbxproj)
Code Signing を自動ではなく、指定のプロビジョニングファイルで行う為の設定。
# Code Signing (project.pbxproj)
export PROJECT_PBXPROJ_PATH=${BITRISE_XCODEPROJ_PATH}/project.pbxproj
sed -i -e 's|DEVELOPMENT_TEAM .*;|DEVELOPMENT_TEAM = [Apple Developers Team ID];|g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|CODE_SIGN_IDENTITY .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|PROVISIONING_PROFILE .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|PROVISIONING_PROFILE_SPECIFIER .*;||g' ${PROJECT_PBXPROJ_PATH}
sed -i -e 's|CODE_SIGN_STYLE .*;|CODE_SIGN_STYLE = Manual;CODE_SIGN_IDENTITY = "iPhone Distribution";PROVISIONING_PROFILE_SPECIFIER = [Code Signing に登録したプロビジョニングファイルの名称];|g' ${PROJECT_PBXPROJ_PATH}
cat ${PROJECT_PBXPROJ_PATH}
Pods Deintegrate & Cache Clean
CocoaPods をクリーンする。
# Pods Deintegrate & Cache Clean
cd ${BITRISE_SCHEME}
gem install cocoapods --pre
pod deintegrate
pod cache clean --all
rm -f Podfile.lock
Recreate User Schemes
- Input variables
- Project or Workspace path
$BITRISE_PROJECT_PATH
- Project or Workspace path
Run CocoaPods install
- Input variables
- Podfile path
- [Podfile のパス] ※例 :
$BITRISE_SCHEME/Podfile
- [Podfile のパス] ※例 :
- Podfile path
Xcode Archive & Export for iOS
- Input variables
- Select method for export
app-store
- Select method for export
- Debug
- Do a clean Xcode build before the archive?
yes
- Do a clean Xcode build before the archive?
Deploy to iTunes Connect - Application Loader
- Input variables
- Apple ID: Email
$APPLE_ID
- Apple ID: Password
$APPLE_PASSWORD
- Apple ID: Application-specific password
$APPLE_APPLICATION_SPECIFIC_PASSWORD
- Apple ID: Email
2.Code Signing
PROVISIONING PROFILE
必要なプロビジョニングファイルを登録します。
CODE SIGNING CERTIFICATES
必要な証明書(*.p12)を登録します。
GENERIC FILE STORAGE
今回は、アプリに Firebase ライブラリを利用しているので、構成ファイル(GoogleService-Info.plist)を登録しています。
3.Secrets
- Secret Environment Variables
- APPLE_ID
- App Store へのデプロイに使用される Apple ID
- APPLE_PASSWORD
- App Store へのデプロイに使用される Apple ID
- APPLE_APP_ID
- アプリ ID
- APPLE_APPLICATION_SPECIFIC_PASSWORD
- App Store へのデプロイに使用されるアプリ用のパスワード
- App 用パスワードを使う - Apple サポート (日本)
- APPLE_ID
- App Store へのデプロイに使用される Apple ID
- APPLE_PASSWORD
- App Store へのデプロイに使用される Apple ID
- APPLE_APP_ID
- アプリ ID
- APPLE_APPLICATION_SPECIFIC_PASSWORD
- App Store へのデプロイに使用されるアプリ用のパスワード
- App 用パスワードを使う - Apple サポート (日本)
4.Env Vars
- App Environment Variables
- BITRISE_PROJECT_PATH
- ワークスペースファイル (*.xcworkspace) のパス
- BITRISE_PROJECT_PATH
- プロジェクトファイル (*.xcodeproj) のパス
- BITRISE_APP_PATH
- アプリのベースフォルダのパス
- BITRISE_SCHEME
- アプリのリソース名称
- BUNDLE_IDENTIFIER
- アプリのバンドルID(Bundle identifier)
- CFBundleShortVersionString
- アプリのバージョン ※例 : 1.0.0
- BITRISE_PROJECT_PATH
- ワークスペースファイル (*.xcworkspace) のパス
- BITRISE_PROJECT_PATH
- プロジェクトファイル (*.xcodeproj) のパス
- BITRISE_APP_PATH
- アプリのベースフォルダのパス
- BITRISE_SCHEME
- アプリのリソース名称
- BUNDLE_IDENTIFIER
- アプリのバンドルID(Bundle identifier)
- CFBundleShortVersionString
- アプリのバージョン ※例 : 1.0.0
5.App Store
確か、こんな感じだった気がする…
99.ハマりポイント
- うーん。覚えてないなぁー
XX.まとめ
以前、こちらの記事を書いたんですが、iOS アプリも記事を書こうと思いつつ…
だいぶ時間が空きましたが、記事を書くことが出来て良かったです!
Bitrise から Google Play へアプリをデプロイする - Qiita
では♪
- ※参考 :
- 参考にさせて頂いたサイトがたくさんあったと思うんですが…、すいません、忘れてしまいました…。
Author And Source
この問題について(Bitrise から App Store へアプリをデプロイする), 我々は、より多くの情報をここで見つけました https://qiita.com/kusokamayarou/items/d31da92ce6a47c0a187d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .