2018:iOSリリースとCI / CDプロセスの年間最大の大規模なシェイクアップ。 2019年の準備方法

元のリンク:

2018年、Mobile DevOpsとCI / CDの世界は、いくつかの大きな発表とニュースによって揺さぶられました。これらの発表はAppleまたはオープンソースコミュニティからのものですが、これらはiOSアプリのCI / CDを行う従来の方法を確実に変えるでしょう。この投稿では、2018年に振り返り、2019年を楽しみにしています。2018年にiOSアプリのMobile DevOpsおよびContinuous Deliveryで変更された点と、iOSリリースおよびCI / CDプロセスにどのように影響するかを確認します。 2019年

1. Apple + BuddyBuild

2018年の新しい年の日に、AppleはBuddyBuildを買収し、Mobile DevOpsの状況は大きく変わりました。 BuddyBuildは、モバイルアプリ向けの優れたクラウドCI / CDサービスの1つです。 BuddyBuildはAppleの一部になったため、Androidアプリのサポートを終了しました。また、iOSアプリの新規顧客の受け入れを停止しました。このニュースは、AndroidとiOSの両方でBuddyBuildサービスを使用している企業にとって大きな衝撃の1つでした。これらの企業は、Androidアプリ用の別のCI / CDサービスを探す必要があり、その結果、移行作業に費用がかかります。これはクラウドベースのCI / CDサービスを使用している企業にとっても大きな教訓であり、モバイルインフラストラクチャを社内で管理するか、他の企業に外部委託するかを考えさせます。ここでは、社内でモバイルDevOpsインフラストラクチャを管理することの長所と短所について説明しました。 AppleとBuddyBuildの合併により、Xcode Serveの将来も疑問視されています。これは、現時点でXcodeサーバーを使用している企業にとっての警告音でもあります。

2019年を楽しみにして:

  • AndroidとiOSの両方に共通のクロスプラットフォームモバイルCI / CDソリューションをお探しですか? Travis CI、Nevercode、Bitrise、Circle CIなど、プロジェクトインフラストラクチャに適した他のモバイル固有のCI / CDサービスを探しましょう。または、スキルを備えた専用のリソースがある場合は、Jenkins、TeamCityなどを使用して社内でモバイルインフラストラクチャを管理します。
  • iOS専用ソリューションをお探しですか? Apple + BuddyBuildが提供するものがWWDCになるまで待ってから、他のサービスに移行してください。
  • 既存のXcodeサーバーユーザーは、Xcodeサーバーの将来に関するニュースを入手するまでそのまま使用できます。

2. App Store Connect API

2018年の別の最新ニュースは、AppleによるAppStore Connect APIの発表です。 WWDC 2018では、Apple Developer PortalとiTunes Connectの両方と対話するための公式APIが発表されました。 Appleはまた、開発者ポータルとiTunes Connectを組み合わせて、「App Store Connect」としてブランド変更しました。 App Store Connectの新機能とApp Store Connectの自動化に関する素晴らしいWWDCセッションがあります

App Store Connect APIは、認証用のJWT(JSON Web Tokens)に基づく標準RESTful APIであり、すべてのプラットフォームからアクセスできます。 App Store Connect APIを使用すると、App Storeに関連するほとんどすべてのものを自動化できます。

  • 証明書の管理、プロファイルのプロビジョニング、デバイスIDとバンドルIDの管理
  • App Store Connectのユーザー、ロール、アプリアクセスの管理
  • TestFlightおよびBetaテスターとパブリックリンクの管理
  • 財務レポートと販売レポートのダウンロード

XCBlogは、以前の投稿でApp Store Connect APIについて詳しく説明しています。 App Store Connect APIは、現在のCI / CDプロセスから多くのサードパーティツールを削除します。当然のことながら、App Store Connect APIを内部で使用する何百ものオープンソースツールが市場に登場します。

2019年を楽しみにして:

App Store Connect APIは、現在のCI / CDプロセスから多くのサードパーティツールを削除します。当然のことながら、App Store Connect APIを内部で使用する何百ものオープンソースツールが市場に登場します。 App Store Connect APIを使用して、これらの光沢のある新しいツールを使用する準備をするか、プロジェクト要件に合わせて独自のカスタムツールを作成します。

3. Fastlaneの廃止

Fastlaneは、多くのiOSアプリのiOS展開パイプラインの自動化に使用されており、これまでのところうまく機能しました。 AppleがXcodeサーバーの自動化ワークフローを大幅に改善し、サードパーティのCI / CDサービスが基礎となる自動化のほとんどを処理するにつれて、Fastlaneツールの使用が冗長になります。 Appleは、Apple DeveloperポータルまたはiTunes Connectに接続するためのAPIを提供していません。これが、iOS開発者のほとんどがiOS展開パイプラインの自動化にFastlaneを選択した理由です。ただし、AppleによるAppStore Connect APIの発表により、ほとんどのFastlaneツールは冗長になり、遅かれ早かれネイティブのApple開発者ツールに置き換える必要があります。 FastlaneコミュニティはTwitterとGithubでも静かになり、Fastlane CIのプロジェクトも廃止されました。これは、Fastlaneを遅かれ早かれ廃止する必要があることを示しています。光沢のあるツールとApp Store Connect APIに備えてください。

2019年を楽しみにして:

スキャン、ジムなどのFastlaneツールの一部はiOSアプリの構築とテストに引き続き機能しますが、遅かれ早かれApp Store Connect APIに基づいた新しいフローを採​​用する必要があります。搭乗など不要になったFastlaneツールを廃止する準備をします。

遅かれ早かれ、新しいワークフローに移行する必要があるため、新しいツールの準備を開始し、FastlaneとRubyをiOSプロジェクトから廃止することをお勧めします。

4. TestFlightの機能強化+段階的リリース

AppleはTestFlightパブリックリンクサポートを開始しました。このリンクでは、リンクを共有し、人々にベータアプリをテストしてもらうことができます。パブリックリンクは最大10Kのテスターに​​送信できますが、制限を設定できます。リンクはいつでも無効または有効にして、番号テスターを制御できます。グループの作成、グループへのビルドの割り当て、パブリックリンクの管理、テスターおよびテスト情報の管理など、TestFlightのほとんどの機能は、App Store Connect APIを使用して自動化できます。継続的デリバリーとTestFlightの機能強化のための段階的リリースは、大胆不敵なリリースでよりよく連携できます。

2019年を楽しみにして:

TestFlightビルドのパブリックリンクの使用を開始しますが、共有中は注意してください。リリースする前に機能を公開するリスクがあります。 App Store Connect APIを使用して、テスター、グループの管理プロセスの自動化を開始します。段階的リリースを活用して、実稼働環境で特定の機能をリスクなしでテストします。

5. App Store Connect- iOSアプリ

Appleは、iOSアプリ「App Store Connect」も開始しました。これにより、Webサイトにアクセスすることなく、iOSデバイスからほぼすべてのアクティビティを実行できます。 iOSアプリでは、次のことができます

  • トレンド、販売、更新、アプリ内購入、アプリバンドルをご覧ください
  • すべてのアプリと開発チームに切り替える機能。
  • 詳細なアプリ情報、アプリのリリース/拒否、ユーザーレビューの管理、通知の設定

iOSアプリからの先行予約、アプリ内購入などについては多くのことがあります。

2019年を楽しみにして:

iOSアプリを使用して、モバイルからApp Store Connectのすべての機能を管理します。

6.新しいXcodeビルドシステム

Xcode 10では、Xcode New Build Systemがデフォルトでアクティブになっています。新しいビルドシステムの完全なリリースノートは、こちらでご覧いただけます。以前のブログ投稿で、新しいビルドシステムの内部の詳細について説明しました。新しいビルド設定は、Xcode Files-> Project / Workspace Settingsからアクティブ化でき、レガシービルドシステムと新しいビルドシステムを切り替えることができます。 CIサーバーで、xcodebuildを使用してコマンドラインから追加パラメーターを渡す必要があります-UseModernBuildSystem = YESは、新しいビルドシステムも強制します。 Xcodeの詳細については、新しいビルドシステムを以前のXCBlogで使用できます。こちらをご覧ください。最新のビルドシステムを使用すると、ここで説明した基本的なヒントに従うことで、Swiftのビルド時間を大幅に改善できます。

2019年を楽しみにして:

Xcodeの新しいビルドシステムは、通常のフローでは判断できない問題を見つけるように設計されています。システムを適切に機能させるために、iOSアプリを適合させる必要がある場合があります。新しいビルドシステムを有効にすると、いくつかのエラーが発生する可能性があります。その場で修正する必要があります。

7. AIベースの並列テスト

多くのAIベースのコードレスモバイルテストツールが市場に登場しており、iOSアプリを使用してテストシナリオを生成し、クラウドで実行します。これらのツールは、設定なしでアプリの基本的な問題も報告します。現在、市場で入手できるAI / MLベースのモバイルテストツールはほとんどありません(例:モバイルテスト用のtest.ai)。 Applitoolsは、視覚的な回帰テストのためにAIを使用します。 Bitbarは、人工知能を使用してモバイルアプリをテストするためのAI Testbotとしても知られるAI駆動のアプリテストソリューションを発表しました。これらのツールは、QAアクティビティの将来の実行方法と、AIベースのツールを使用してiOSテスト作業をサポートする方法を変更する可能性があります。

Appleはまた、毎年テスト技術を改善しています。 2018年には、シミュレーターのクローンを作成して単一のシミュレーター内でテストスイートを並列化することにより、並列テストのサポートが次のレベルに発表されました。 Xcodeは内部で異なるランナープロセスを作成し、各プロセスに特定のテストが割り当てられます。これにより、テストの実行が大幅に削減されます。 Xcode Parallelテストの詳細については、こちらをご覧ください。

2019年を楽しみにして:

iOSアプリのテストにAIベースのテストツールを使用し、XCTestの並行テストサポートを採用します。

8. IPAファイルを展開する簡単な方法

今のところ、App Store ConnectにIPAファイルを展開するための限られたオプションがありました。最も一般的なオプションは、ローカルXcode、アプリケーションローダー、Fastlane、ITMSTRAsporterまたはaltoolです。これらのオプションの詳細については、こちらをご覧ください。ただし、2018年には、IPAファイルを展開するためのオプションがいくつか追加されました

  • LinuxサーバーからITMSTrasporterを使用します。詳細はこちら
  • xcodebuildを使用してIPAファイルをApp Storeに直接アップロードします。詳細はこちら

これにより、CI / CDサーバーは、事前に生成されたIPAファイルをよりスムーズに、またはLinuxサーバーからもApp Storeにアップロードできます。

2019年を楽しみにして:

exportOptionsPlistを使用したxcodebuildツールを使用して、コマンドラインからiOSアプリを展開します。 IPAファイルをLinuxサーバーに転送し、ITMSTransporterを使用してアプリをApp Storeにデプロイしてみてください。

9.モバイルSDKおよびSwiftライブラリのCI

モバイルアプリの人気が高まるにつれて、ほとんどの企業はモバイルアプリをより速く構築するためのアーキテクチャを必要としています。したがって、品質を保証し、複数のアプリで既存のコードを再利用するために、企業はコードを複数のアプリで簡単に再利用できるように、再利用可能なソフトウェア開発キット(SDK)とライブラリの構築を開始しました。ライブラリコードは複数のクライアントに影響を与える可能性があるため、SDKのコード品質がすべてのクライアントの要件を満たしていることを確認することが不可欠です。ほとんどの企業では、メインアプリ用のCI / CDインフラストラクチャのセットアップがありますが、ライブラリとSDKのセットアップはありません。実際には、ライブラリとSDKの継続的な統合は、メインアプリのCIよりも非常に重要です。

Mobile SDKの継続的統合は、さまざまなクラウドベースのCIサービスによって実現できます。Nevercodeブログでの私の投稿例の1つは、Nevercodeでどのように実行できるかですが、現在使用している他のCIサービスで実行できます。

2019年を楽しみにして:

iOS SDKおよびライブラリにCIを追加する傾向は近い将来確実に増加するため、すべてのモバイルSDKおよびライブラリをCIサーバーにインストールしてください。

10. GitHubアクション

GitHubは、LinuxベースのdockerコンテナからのSwiftパッケージのCI / CDに使用できるサービスGitHub Actionを開始しました。 Github Action for Swiftパッケージを使用してCI / CDをセットアップする方法の詳細なブログ投稿はこちらです。 Githubアクションは、Github自体に組み込まれたGitHub独自のCI / CDソリューションと考えることができます。開発者は、GUIエディターまたはコードからワークフローを作成できます。

現在、このサービスはLinux Dockerベースのビルドに限定されていますが、macOSイメージを取得してGitHubアクションを使用できることを知っています。近い将来、GitHub ActionsがiOS開発にもたらすものを待つことができます。

2019年を楽しみにして:

iOS CI / CDのGitHubアクションロードマップに注目してください。

結論

2018年には、iOSアプリをスムーズにリリースするために多くの良いことが起こりました。これらのすべてのニュースを念頭に置いて、2019年に備え、iOSリリースとCI / CDプロセスの次の予定を確認できます。 2018年の大部分の記事をカバーしたことを願っています

====================================

XCBlog By XCTEQからのこの投稿が好きですか?また、Githubのオープンソースプロジェクトや、TwitterやLinkedInでフォローしてください。