CI2Go for macOS をリリースしました
長瀬 敦史
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 パッケージのビルドが失敗する。
- 例:
multiple configured targets of 'KeychainAccess' are being created for macOS
- ビルドターゲットを複製し、依存ビルドを削除しました。
- 参照: Swift PM app in Xcode 11 (beta 5) gets four “My Mac” platform options
- 例:
fastlane match で Mac Catalyst 向けのプロビジョニングが作成できない
platform: 'macos'
を指定すると Mac 向けのものが作られる。skip_provisioning_profiles
をtrue
に設定、.provisioningprofile
ファイルをバージョン管理に追加し、CI のステップで~/Library/MobileDevice/Provisioning Profiles/
にコピーするようにしました。match( type: 'development', app_identifier: %w(com.ci2go.ios.Circle), skip_provisioning_profiles: true, platform: 'macos' )
fastlane deliver が
reject_if_possible: true
を設定した再、platform
をosx
に設定しても、iOS のバイナリーを取り下げる。- 今の所 Mac 版では、
reject_if_possible
をfalse
に設定し、新しいバイナリーを提出する必要がある場合は手動で取り下げています。
- 今の所 Mac 版では、
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 の開発を応援してください 🙇♂️