Last week was almost exclusively focused on Builds, my GitHub Actions status board app for macOS and iOS. I kicked off the week with some app review shenanigans, found myself down a deep rabbit hole adding support for item selection on macOS, and took a little time out to add some whimsy to the app.

App Review Challenges

On Monday, keen to keep up the momentum with Builds and get it into the hands of a few friends, I submitted the app for TestFlight public beta review. Unfortunately, things didn't go smoothly.

Apple requires you to provide sign-in details for apps that use an account. Theoretically, this shouldn't be an issue–Apple offers a way to share account details–but the workflow hasn't kept up with modern security requirements. Specifically, there's no support for either authenticator- or email-based 2-factor authentication, making it incredibly difficult to share a GitHub account with them.

App Store Connect only supports sharing accounts with basic username and password authentication

They seem to expect to perform 2FA-based sign-in interactively, scheduling calls, and phoning developers during review. Needless to say, this isn't practical or sustainable and, after a frustrating couple of rejections, I decided to figure out how to share TOTP codes with Apple.

Codes is a lightweight JavaScript app that generates TOTP authentication codes

I wrote a small lightweight web based client-side JavaScript TOTP code generator which I can give app review a URL for (e.g. Secret Generator), that pre-populates it with the TOTP secret, making it easy for them follow through. I wrote my own since sharing a TOTP authenticator secret with a third-party represents a fairly high-risk action. If you'd like to use codes, please feel free to folk the repository.

(Aside: In the process of writing this up (and knowing more what I was after), I came across 2FA QR Code Generator by Stefan Sundin which looks quite a bit more polished than my solution. Of course deciding what to use is very much a matter of trust, so I'll probably continue using my own solution.)

In the long-term, I hope Apple add support for sharing a TOTP secret with them as part of the app review workflow. Until that happens, I'll be leaning heavily on Codes.

Grid View Selection

SelectableCollectionView

private var columns = [
  GridItem(.fixed(200)),
  GridItem(.flexible(minimum: 300)),
  GridItem(.adaptive(minimum: 150)),
]

Desktop Toys

I've mentioned in previous weeknotes that I'm keen to introduce a little whimsy into the computing experience and Builds seems a perfect opportunity. On Friday, I took a little time out to do exactly that, revisiting my the maneki neko cats I built during my time at RealVNC.

The latest public beta introduces a desktop toy that shows the combined health of your projects

I've little-to-no experience with 3D graphics or game-development, so this is all new to me. Needing to start somewhere, I picked up a couple of models on Sketchfab. I'm already becoming quite fond of Yeyo Studio's 'Stylized Lowpoly LuckyCat' but longer-term, I'd like to find an artist to collaborate with1 and come up with some models and animations we can publish open source alongside Builds itself.

I've only played a little with the Vision Pro, but I'm curious how something like this would translate to Apple's concept of spacial computing–I can imagine leaving a little virtual status 'ornament' on my desk as a way of passively discovering the status of my builds.


  1. Drop me an email if this is exciting to you.