LoginSignup
1
2

More than 1 year has passed since last update.

Bitrise から App Store へアプリをデプロイする

Posted at

5eb2a34d4cee6c264f61c34a_og-image-default.png

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

FireShot Capture 924 - Bitrise Workflow editor - app.bitrise.io.png

File Downloader

  • Input variables
    • Download source url
      • [ダウンロードファイルパス]
    • Download destination path
      • [ダウンロード保存先ファイルパス]

Replaces Xcode's project PRODUCT_BUNDLE_IDENTIFIER

  • Input variables
    • Xcode project path
      • $BITRISE_SOURCE_DIR/$BITRISE_XCODEPROJ_PATH
    • New bundle identifier
      • $BUNDLE_IDENTIFIER

FireShot Capture 930 - Bitrise Workflow editor - app.bitrise.io.png

Set Xcode Project Build Number

  • Input variables
    • Info.plist file path
      • $BITRISE_SOURCE_DIR/$BITRISE_SCHEME/$BITRISE_SCHEME/Info.plist
    • Version Number
      • $CFBundleShortVersionString

FireShot Capture 931 - Bitrise Workflow editor - app.bitrise.io.png

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 の置換するキーの値]

FireShot Capture 932 - Bitrise Workflow editor - app.bitrise.io.png

Script

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3136313933392f37316362666464362d653130652d363666302d623562622d6539653036366235333838382e706e67.png

#!/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

FireShot Capture 935 - Bitrise Workflow editor - app.bitrise.io.png

Run CocoaPods install

  • Input variables
    • Podfile path
      • [Podfile のパス] ※例 : $BITRISE_SCHEME/Podfile

FireShot Capture 936 - Bitrise Workflow editor - app.bitrise.io.png

Xcode Archive & Export for iOS

  • Input variables
    • Select method for export
      • app-store
  • Debug
    • Do a clean Xcode build before the archive?
      • yes

FireShot Capture 937 - Bitrise Workflow editor - app.bitrise.io.png

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

FireShot Capture 943 - Bitrise Workflow editor - app.bitrise.io.png

2.Code Signing

PROVISIONING PROFILE

必要なプロビジョニングファイルを登録します。

CODE SIGNING CERTIFICATES

必要な証明書(*.p12)を登録します。

GENERIC FILE STORAGE

今回は、アプリに Firebase ライブラリを利用しているので、構成ファイル(GoogleService-Info.plist)を登録しています。

FireShot Capture 944 - Bitrise Workflow editor - app.bitrise.io.png

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

FireShot Capture 945 - Bitrise Workflow editor - app.bitrise.io.png

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

FireShot Capture 946 - Bitrise Workflow editor - app.bitrise.io.png

5.App Store

確か、こんな感じだった気がする…

99.ハマりポイント

  • うーん。覚えてないなぁー

XX.まとめ

以前、こちらの記事を書いたんですが、iOS アプリも記事を書こうと思いつつ…

だいぶ時間が空きましたが、記事を書くことが出来て良かったです!

Bitrise から Google Play へアプリをデプロイする - Qiita

では♪

  • ※参考 :
    • 参考にさせて頂いたサイトがたくさんあったと思うんですが…、すいません、忘れてしまいました…。
1
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
1
2