Firebase+CircleCi+Fastlane으로 AdHoc 게재 자동화
소개
이번에는 이전 투고한 FirebaseAppDistribution의 배포 작업을 CircleCi
· Fastlane
를 이용해 자동화해 나가고 싶습니다. 구현 전에 다음 준비 항목이 필요합니다.
사전 준비
구현 흐름
4.
에서 만든 레인을 추가합니다. Fastlane Match 소개
먼저 인증서에 대한 정보를 저장하고 저장할 리포지토리를 만듭니다.
[email protected]:your_github_name/certificates.git
그런 다음 Fastlane의 MatchFile을 다음 명령으로 설정합니다. 여기서 설정github-url
은 HTTPS의 경우 CI에서 배포할 때 Error가 발생할 수 있으므로 SSH로 설정해 둡니다. 또 Passphrass for Git repo
로 설정하는 값은 나중에 멤버에게 공유하는 등 사용하는 타이밍이 있으므로, 삼가해 둡시다.
$ fastlane match init
그런 다음 Git 리포지토리에 개발 인증서와 배달 인증서를 각각 만듭니다.
$ fastlane match development
$ fastlane match adhoc
다음에 작성한 인증서와 프로파일을 취득해, Xcode의 Signing&Capabilities
에 프로파일을 설정해 둡시다.
$ fastlane match development --readonly
$ fastlane match adhoc --readonly
CircleCi에 Certificates 저장소 액세스 권한 부여
CircleCi 프로젝트 화면으로 이동하여 현재 사용자의 SSH 키를 등록합니다.
h tps : // / rc ぇ시. 이 m / 두 cs / 그럼 / 2.0 / 아 d sh sh y /의 거리 Checkout SSH keys
에서 등록합니다.
CircleCi에 FirebaseToken 환경 변수 등록
CI용 FirebaseToken을 FirebaseCLI
에서 가져옵니다.
$ firebase login:ci
로그인에 성공적으로 표시된 token을 CircleCi 환경 변수에 등록합니다.
FastFile 구현
먼저 Fastlane에서 AppDistribution을 사용하기위한 플러그인을 추가합니다.
$ fastlane add_plugin firebase_app_distribution
FastFile에 Lane을 추가합니다.
Fastfile.rbdefault_platform(:ios)
WORKSPACE = "App.xcworkspace"
SCHEME = "App"
platform :ios do
before_all do
# https://circleci.com/docs/ja/2.0/testing-ios/
setup_circle_ci
end
desc 'Runs except unit_test tests'
lane :unit_test do
scan(
scheme: SCHEME
)
end
desc 'Deploy to Firebase'
lane :adhoc do
# matchでadhoc証明を行います。
match(type: "adhoc", readonly: true)
# https://docs.fastlane.tools/actions/gym/ でipaを作成します。
gym(
workspace: WORKSPACE,
scheme: SCHEME,
configuration: "Staging",
export_method: "ad-hoc"
)
# デプロイ
firebase_app_distribution(
app: "1:298717447283:ios:f90cc26d3b9a7423725606",
testers: "[email protected],
release_notes: "Lots of amazing new features to test out!",
firebase_cli_path: "./node_modules/.bin/firebase"
)
end
end
CircleCi-Config.yml 구현
config.ymldefaults: &defaults
working_directory: ~/app
macos:
xcode: "11.3.0"
version: 2
jobs:
unit_test:
<<: *defaults
steps:
- checkout
- run: bundle install --path vendor/bundle
- run:
name: Fastlane
command: bundle exec fastlane unit_test
adhoc:
<<: *defaults
steps:
- checkout
- run: bundle --path vendor/bundle
- run:
name: Install Firebase Tools
# FirebaseCLIをインストール
command: npm install firebase-tools
- deploy:
name: Deploy
# Fastfileで作成したlaneを呼び出す
command: bundle exec fastlane adhoc
workflows:
version: 2
build-and-deploy:
jobs:
- unit_test
- adhoc:
# unit_test完了後にデプロイ
requires:
- unit_test
사이고에게
이제 PR이 생성될 때마다 앱의 AdHoc이 테스터에 전달됩니다. 앱을 설치하는 단계는 이전 기사에서도 게시했습니다.
Reference
이 문제에 관하여(Firebase+CircleCi+Fastlane으로 AdHoc 게재 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yum_fishing/items/35376b574b7560561a3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[email protected]:your_github_name/certificates.git
$ fastlane match init
$ fastlane match development
$ fastlane match adhoc
$ fastlane match development --readonly
$ fastlane match adhoc --readonly
CircleCi 프로젝트 화면으로 이동하여 현재 사용자의 SSH 키를 등록합니다.
h tps : // / rc ぇ시. 이 m / 두 cs / 그럼 / 2.0 / 아 d sh sh y /의 거리
Checkout SSH keys
에서 등록합니다.CircleCi에 FirebaseToken 환경 변수 등록
CI용 FirebaseToken을 FirebaseCLI
에서 가져옵니다.
$ firebase login:ci
로그인에 성공적으로 표시된 token을 CircleCi 환경 변수에 등록합니다.
FastFile 구현
먼저 Fastlane에서 AppDistribution을 사용하기위한 플러그인을 추가합니다.
$ fastlane add_plugin firebase_app_distribution
FastFile에 Lane을 추가합니다.
Fastfile.rbdefault_platform(:ios)
WORKSPACE = "App.xcworkspace"
SCHEME = "App"
platform :ios do
before_all do
# https://circleci.com/docs/ja/2.0/testing-ios/
setup_circle_ci
end
desc 'Runs except unit_test tests'
lane :unit_test do
scan(
scheme: SCHEME
)
end
desc 'Deploy to Firebase'
lane :adhoc do
# matchでadhoc証明を行います。
match(type: "adhoc", readonly: true)
# https://docs.fastlane.tools/actions/gym/ でipaを作成します。
gym(
workspace: WORKSPACE,
scheme: SCHEME,
configuration: "Staging",
export_method: "ad-hoc"
)
# デプロイ
firebase_app_distribution(
app: "1:298717447283:ios:f90cc26d3b9a7423725606",
testers: "[email protected],
release_notes: "Lots of amazing new features to test out!",
firebase_cli_path: "./node_modules/.bin/firebase"
)
end
end
CircleCi-Config.yml 구현
config.ymldefaults: &defaults
working_directory: ~/app
macos:
xcode: "11.3.0"
version: 2
jobs:
unit_test:
<<: *defaults
steps:
- checkout
- run: bundle install --path vendor/bundle
- run:
name: Fastlane
command: bundle exec fastlane unit_test
adhoc:
<<: *defaults
steps:
- checkout
- run: bundle --path vendor/bundle
- run:
name: Install Firebase Tools
# FirebaseCLIをインストール
command: npm install firebase-tools
- deploy:
name: Deploy
# Fastfileで作成したlaneを呼び出す
command: bundle exec fastlane adhoc
workflows:
version: 2
build-and-deploy:
jobs:
- unit_test
- adhoc:
# unit_test完了後にデプロイ
requires:
- unit_test
사이고에게
이제 PR이 생성될 때마다 앱의 AdHoc이 테스터에 전달됩니다. 앱을 설치하는 단계는 이전 기사에서도 게시했습니다.
Reference
이 문제에 관하여(Firebase+CircleCi+Fastlane으로 AdHoc 게재 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yum_fishing/items/35376b574b7560561a3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ firebase login:ci
먼저 Fastlane에서 AppDistribution을 사용하기위한 플러그인을 추가합니다.
$ fastlane add_plugin firebase_app_distribution
FastFile에 Lane을 추가합니다.
Fastfile.rb
default_platform(:ios)
WORKSPACE = "App.xcworkspace"
SCHEME = "App"
platform :ios do
before_all do
# https://circleci.com/docs/ja/2.0/testing-ios/
setup_circle_ci
end
desc 'Runs except unit_test tests'
lane :unit_test do
scan(
scheme: SCHEME
)
end
desc 'Deploy to Firebase'
lane :adhoc do
# matchでadhoc証明を行います。
match(type: "adhoc", readonly: true)
# https://docs.fastlane.tools/actions/gym/ でipaを作成します。
gym(
workspace: WORKSPACE,
scheme: SCHEME,
configuration: "Staging",
export_method: "ad-hoc"
)
# デプロイ
firebase_app_distribution(
app: "1:298717447283:ios:f90cc26d3b9a7423725606",
testers: "[email protected],
release_notes: "Lots of amazing new features to test out!",
firebase_cli_path: "./node_modules/.bin/firebase"
)
end
end
CircleCi-Config.yml 구현
config.ymldefaults: &defaults
working_directory: ~/app
macos:
xcode: "11.3.0"
version: 2
jobs:
unit_test:
<<: *defaults
steps:
- checkout
- run: bundle install --path vendor/bundle
- run:
name: Fastlane
command: bundle exec fastlane unit_test
adhoc:
<<: *defaults
steps:
- checkout
- run: bundle --path vendor/bundle
- run:
name: Install Firebase Tools
# FirebaseCLIをインストール
command: npm install firebase-tools
- deploy:
name: Deploy
# Fastfileで作成したlaneを呼び出す
command: bundle exec fastlane adhoc
workflows:
version: 2
build-and-deploy:
jobs:
- unit_test
- adhoc:
# unit_test完了後にデプロイ
requires:
- unit_test
사이고에게
이제 PR이 생성될 때마다 앱의 AdHoc이 테스터에 전달됩니다. 앱을 설치하는 단계는 이전 기사에서도 게시했습니다.
Reference
이 문제에 관하여(Firebase+CircleCi+Fastlane으로 AdHoc 게재 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yum_fishing/items/35376b574b7560561a3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
defaults: &defaults
working_directory: ~/app
macos:
xcode: "11.3.0"
version: 2
jobs:
unit_test:
<<: *defaults
steps:
- checkout
- run: bundle install --path vendor/bundle
- run:
name: Fastlane
command: bundle exec fastlane unit_test
adhoc:
<<: *defaults
steps:
- checkout
- run: bundle --path vendor/bundle
- run:
name: Install Firebase Tools
# FirebaseCLIをインストール
command: npm install firebase-tools
- deploy:
name: Deploy
# Fastfileで作成したlaneを呼び出す
command: bundle exec fastlane adhoc
workflows:
version: 2
build-and-deploy:
jobs:
- unit_test
- adhoc:
# unit_test完了後にデプロイ
requires:
- unit_test
이제 PR이 생성될 때마다 앱의 AdHoc이 테스터에 전달됩니다. 앱을 설치하는 단계는 이전 기사에서도 게시했습니다.
Reference
이 문제에 관하여(Firebase+CircleCi+Fastlane으로 AdHoc 게재 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yum_fishing/items/35376b574b7560561a3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)