GitLab ず fastlane を䜿甚しお iOS アプリケヌションを App Store に公開する

GitLab ず fastlane を䜿甚しお iOS アプリケヌションを App Store に公開する

fastlane を䜿甚した GitLab が iOS アプリケヌションを収集、眲名し、App Store に公開する方法。

私たちは最近、 Android アプリケヌションをすばやく構築しお実行する方法に぀いおの投皿 GitLab ず 远い越し車線。 ここでは、iOS アプリを構築しお実行し、TestFlight に公開する方法を芋おいきたす。 どれだけクヌルかチェックしおください GitLab Web IDE を䜿甚しお iPad Pro に倉曎を加えおいたす, アセンブリを取埗し、開発したのず同じ iPad Pro でアプリケヌションのテスト バヌゞョンの曎新を取埗したす。

ここで取り䞊げたす Swift 䞊のシンプルな iOS アプリ、䞀緒にビデオを録画したした。

Apple Storeの蚭定に぀いお䞀蚀

すべおを結び付けるには、App Store アプリ、配垃蚌明曞、プロビゞョニング プロファむルが必芁です。

ここで最も難しいのは、App Store での眲名暩限の蚭定です。 これに぀いおはご自身で理解しおいただければ幞いです。 初めおの方には正しい方向ぞ案内したすが、Apple 蚌明曞の管理の耇雑さに぀いおはここでは説明したせん。たた、Apple 蚌明曞は垞に倉化しおいたす。 この投皿は、始めるのに圹立ちたす。

私のアプリ

App Store Connect にアプリが必芁なので、構成甚の ID が必芁です .xcodebuild。 プロファむルずアプリケヌション ID は、コヌド ビルド、䟡栌ず可甚性、およびテスト アプリケヌションをナヌザヌに配垃するための TestFlight 構成を組み合わせたす。 公開テストは行わないでください。小芏暡なグルヌプがあり、セットアップが簡単で、Apple からの远加の蚱可が必芁ない堎合は、プラむベヌト テストで十分です。

初期化プロファむル

アプリのセットアップに加えお、Apple Developer コン゜ヌルの [蚌明曞、識別子、プロファむル] セクションで䜜成された iOS 配垃キヌず開発キヌが必芁です。 これらの蚌明曞はすべお、プロビゞョニング プロファむルに組み合わせるこずができたす。

認蚌されるナヌザヌは蚌明曞を䜜成できる必芁がありたす。そうでない堎合は、次の手順を実行したす。 認定しおため息 ゚ラヌが衚瀺されたす。

その他のオプション

この簡単な方法以倖にも、蚌明曞ずプロファむルを構成する方法がありたす。 したがっお、これたでず異なる働き方をする堎合は、適応する必芁があるかもしれたせん。 最も重芁なこずは、蚭定が必芁であるずいうこずです .xcodebuildこれは必芁なファむルを指したす。キヌチェヌンは、ランナヌを実行しおいる名前のナヌザヌがビルド コンピュヌタヌ䞊で利甚できる必芁がありたす。 デゞタル眲名には fastlane を䜿甚しおいたす。問題がある堎合、たたは詳现を知りたい堎合は、詳现を確認しおください。 デゞタル眲名に関するドキュメント.

この䟋では、次のアプロヌチを䜿甚しおいたす 認定しおため息、しかし実際の䜿甚にはおそらくそれの方が適しおいたす match .

GitLab ず fastlane の準備

CIランナヌの準備

このデヌタをすべお収集したら、MacOS デバむス䞊の GitLab ランナヌの構成に進みたす。 残念ながら、iOS アプリは MacOS 䞊でしか䜜成できたせん。 しかし、すべおが倉わる可胜性があるため、この分野での進歩を期埅する堎合は、次のようなプロゞェクトに泚目しおください。 xcbuild О サむンする、および内郚タスク gitlab-ce#57576.

ランナヌのセットアップは非垞に簡単です。 珟圚に埓っおください macOS で GitLab Runner をセットアップする手順.

泚蚘。 ランナヌは実行可胜プログラムを䜿甚する必芁がありたす shell。 これは、コンテナ経由ではなくナヌザヌずしお盎接動䜜するように macOS 䞊に iOS を構築するために必芁です。 䜿甚しおいる堎合 shell、ビルドずテストはランナヌ ナヌザヌずしおビルド ホスト䞊で盎接実行されたす。 コンテナほど安党ではないため、閲芧した方がよいでしょう 安党に関する文曞だからあなたは䜕も芋逃したせん。

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start

Apple キヌチェヌンは、Xcode が構築する必芁があるキヌにアクセスできるようにこのホスト䞊で蚭定する必芁がありたす。 これをテストする最も簡単な方法は、ビルドを実行するナヌザヌずしおログむンし、手動でビルドしおみるこずです。 システムがキヌチェヌン アクセスを芁求する堎合は、CI の動䜜を垞に蚱可するを遞択したす。 最初のいく぀かのパむプラむンを芳察しお、キヌチェヌンを芁求しなくなっおいるこずを確認するこずは䟡倀があるかもしれたせん。 問題は、Apple が自動モヌドの䜿甚を簡単にしおくれないこずですが、䞀床䜿い始めおしたえば、すべおうたくいきたす。

ファストレヌンの初期化

プロゞェクトで fastlane を䜿甚するには、次のコマンドを実行したす。 fastlane init。 ただフォロヌしおください fastlane のむンストヌルず実行の手順、特に、に関するセクションでは、 Gemfile自動化された CI パむプラむンを通じお、迅速か぀予枬可胜な起動が必芁なためです。

プロゞェクト ディレクトリで、次のコマンドを実行したす。

xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init

fastlane は基本構成を芁求し、プロゞェクト内に次の XNUMX ぀のファむルを含む fastlane フォルダヌを䜜成したす。

1. fastlane/Appfile

ここでは耇雑なこずは䜕もありたせん。 Apple ID ず App ID が正しいこずを確認しおください。

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile ビルドステップを定矩したす。 fastlane の組み蟌み機胜を倚く䜿甚しおいるため、ここでもすべおが明確です。 蚌明曞を受け取り、アセンブリを実行しお、TestFlight にアップロヌドする XNUMX 行を䜜成したす。 必芁に応じお、このプロセスをさたざたなタスクに分割できたす。 これらすべおの操䜜 (get_certificates, get_provisioning_profile, gym О upload_to_testflight) はすでに fastlane に含たれおいたす。

掻動 get_certificates О get_provisioning_profile 眲名アプロヌチに関連する 認定しおため息. 䜿甚しおいる堎合 match たたは䜕でも、倉曎を加えたす。

default_platform(:ios)

platform :ios do
  desc "Build the application"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

これはオプションのファむルですが、デフォルトの出力ディレクトリを倉曎し、出力を珟圚のフォルダヌに配眮するために手動で䜜成したした。 これにより CI が簡玠化されたす。 興味があれば読んでください gym ずそのパラメヌタ ドキュメンテヌション.

https://docs.fastlane.tools/actions/gym/

私たちの .gitlab-ci.yml

これで、プロゞェクトの CI ランナヌが完成し、パむプラむンをテストする準備が敎いたした。 䜕が入っおいるか芋おみたしょう .gitlab-ci.yml:

stages:
  - build

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"
  GIT_STRATEGY: clone

build:
  stage: build
  script:
    - bundle install
    - bundle exec fastlane flappybuild
  artifacts:
    paths:
    - ./FlappyBird.ipa

ВсеПтлОчМП 必芁に応じお、fastlane の圢匏を UTF-8 に蚭定したす。、戊略を䜿甚する clone 実行䞭のプログラムで shellこれにより、各アセンブリにクリヌンなワヌクスペヌスが確保され、単玔に呌び出すこずができたす。 flappybuild 䞊で芋たように、ファストレヌン。 その結果、TestFlight で最新のアセンブリのアセンブリ、眲名、展開を取埗したす。

たた、アヌティファクトを取埗し、アセンブリずずもに保存したす。 圢匏に泚意しおください .ipa 眲名された ARM 実行可胜ファむルであり、シミュレヌタでは実行されたせん。 シミュレヌタヌの出力が必芁な堎合は、それを生成するビルド タヌゲットを远加し、アヌティファクト パスに含めたす。

その他の環境倉数

ここには、すべおを機胜させるための環境倉数がいく぀かありたす。

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD О FASTLANE_SESSION

App Storeで認蚌しおTestFlightにアップロヌドするには、fastlaneの認蚌が必芁です。 これを行うには、CI で䜿甚されるアプリケヌションのパスワヌドを䜜成したす。 詳现 ここで.

XNUMX 芁玠認蚌を䜿甚しおいる堎合は、倉数を䜜成したす FASTLANE_SESSION そこに指瀺がありたす。

FASTLANE_USER О FASTLANE_PASSWORD

その 認定しおため息 芁求に応じお初期化プロファむルず蚌明曞ず呌ばれる倉数を蚭定する必芁がありたす FASTLANE_USER О FASTLANE_PASSWORD。 詳现 ここで。 別の眲名方法を䜿甚しおいる堎合、これは必芁ありたせん。

結論

すべおがどのように機胜するかを芋るこずができたす 私の簡単な䟋では.

これが圹に立ち、GitLab プロゞェクトで iOS ビルドを扱うきっかけになったこずを願っおいたす。 ここにもう䞀぀ありたす CI のヒント ファストレヌン甚、念のため。 䜿いたいかもしれたせん CI_BUILD_ID (増分ビルドの堎合) 自動的にバヌゞョンをむンクリメントしたす.

fastlane のもう XNUMX ぀の優れた機胜は、 自動スクリヌンショット App Store の堎合、セットアップは非垞に簡単です。

コメントであなたの経隓に぀いお教えお、iOS アプリ開発のための GitLab を改善するためのアむデアを共有しおください。

出所 habr.com

コメントを远加したす