CI2Go for macOS
I’ve published CI2Go the CircleCI client for macOS by porting existing iOS app using Mac Catalyst.
Both iOS and macOS versions are available on App Store in same URL.
Product website: ci2go.app
New version for both iOS and macOS includes the following new features.
Dark Mode
Changed color theme to support Dark Mode.
Color Scheme feature is no longer available.
iPad Keyboard Shortcuts
iPad Keyboard shortcuts are supported from this update.
You can use ⌘ [ to back navigation, ⌘ R to reload and ⌥ ⇧ ⌘ L to logout.
WIP: Workflows
CircleCI Workflows are not yet completely supported but already in future milestones.
Under The Hood
Of course, I’ve setup Mac Catalyst app Continuous Delivery as well as iOS version.
Also, I’ve migrated package management from Carthage to Swift Package Manager.
These are managed in public GitHub repository so anyone can refer.
Hope this could help other developers to try building the Mac Catalyst app on CircleCI like me.
I did some workarounds like the follows.
- Swift Package build fails on macOS platform if containing Build Dependencies
- Like:
multiple configured targets of 'KeychainAccess' are being created for macOS
- Duplicated build target and removed them.
- ref: Swift PM app in Xcode 11 (beta 5) gets four “My Mac” platform options
- Like:
fastlane match can not create Provisioning Profile for Mac Catalyst.
- Creates for Mac when providing
platform: 'macos'
- Set
skip_provisioning_profiles
totrue
, added.provisioningprofile
files to version control and copy them to~/Library/MobileDevice/Provisioning Profiles/
on CI build step.
match( type: 'development', app_identifier: %w(com.ci2go.ios.Circle), skip_provisioning_profiles: true, platform: 'macos' )
- Creates for Mac when providing
fastlane deliver rejects iOS app binary with
reject_if_possible: true
even ifplatform
is set toosx
.- Set
reject_if_possible
tofalse
in Mac platform settings and reject manually if I need to select new build for now.
- Set
fastlane deliver fails submitting Mac app for review.
- Spaceship fails handling App Store Connect API response.
- ref: tunes_client.rb
rescue
d the exception.
rescue NoMethodError => e puts e raise e unless e.message == %q(undefined method `fetch' for nil:NilClass) puts "... Caught error, but omitting" end
Become a sponsor
I’ve published my sponsors page on GitHub Sponsors. Please support me polishing CI2Go if you’d like 🙇♂️