CI2Go for macOS をリリースしました

 English

iPhone, iPad, Apple Watch 向け CircleCI クライアント CI2Go の macOS 版を公開しました。

iOS 版, macOS 版 共に同じ URL からダウンロードいただけます。

製品サイト: ci2go.app

このアプリは、既存 iOS アプリのコードベースを Mac Catalyst を用いて移植したものです。

iOS 版, mac 版 両新バージョンは、以下の新機能を含みます。

ダークモード

ダークモード に対応し、カラースキーム選択の機能の提供を終了しました。

iPad キーボードショートカット

iPad キーボードショートカットが利用いただけるようになりました。

⌘ [ で戻る、⌘ R で再読み込み、⌥ ⇧ ⌘ L でログアウトを行います。

WIP: Workflows

CircleCI Workflows の対応は、まだ完全に行われていませんが、将来のマイルストーンには含まれています。

アップデートの舞台裏

もちろん、Mac Catalyst アプリの継続的デリバリーも、iOS 版同様設定しました。

また、パッケージ管理を Carthage から Swift Package Manager に変更しました。

これらは、公開 GitHub リポジトリ に含まれており、どなたでも閲覧いただけます。

私のように Mac Catalyst のアプリを CircleCI で構築しようとする、他の開発者の助けになればと幸いです。

以下のようなワークアラウンドを行ったりしました。

  • macOS プラットフォームで、依存ビルドを含むと Swift パッケージのビルドが失敗する。
  • fastlane match で Mac Catalyst 向けのプロビジョニングが作成できない

    • platform: 'macos' を指定すると Mac 向けのものが作られる。
    • skip_provisioning_profilestrue に設定、.provisioningprofile ファイルをバージョン管理に追加し、CI のステップで ~/Library/MobileDevice/Provisioning Profiles/ にコピーするようにしました。

      match(
        type: 'development',
        app_identifier: %w(com.ci2go.ios.Circle),
        skip_provisioning_profiles: true,
        platform: 'macos'
      )
      
  • fastlane deliverreject_if_possible: true を設定した再、platformosx に設定しても、iOS のバイナリーを取り下げる。

    • 今の所 Mac 版では、 reject_if_possiblefalse に設定し、新しいバイナリーを提出する必要がある場合は手動で取り下げています。
  • fastlane deliver が Mac アプリの審査提出に失敗する。

    • Spaceship が App Store Connect API のレスポンス形式に対応できていない様子。
    • ref: tunes_client.rb
    • 例外を rescue しています。

      rescue NoMethodError => e
        puts e
        raise e unless e.message == %q(undefined method `fetch' for nil:NilClass)
        puts "... Caught error, but omitting"
      end
      

応援する

GitHub Sponsors のページを公開しました。もしよかったら CI2Go の開発を応援してください 🙇‍♂️

comments powered by Disqus