Back

Building and Shipping Mac and iOS Apps Without Ever Opening Xcode

47 points2 hoursscottwillsey.com
Tiberium1 hour ago

It's kind of funny to be reading this:

> I had Claude Code create mine: I told Claude, more or less: I want to archive, Developer ID-sign, notarize, staple, and install this app to /Applications without ever opening Xcode. Write me a script that does the whole chain and fails loudly if any step breaks.

Even though the text we're reading is Claude talking to us as well :)

Also it was weird to see the mention of "ask your LLM" at almost every stage in the blog post:

> point Claude Code or your LLM coding tool of choice to this blog post, and let it figure it out

> When in doubt, ask your LLM of choice about them and have it help you get set up. It’s the one that’s going to be using Xcode for you anyway.

> The whole point of using the LLM in the first place is to avoid doing things manually that you don’t want to do.

> Again, if in doubt, ask Claude Code or your LLM of choice to create this for you.

> Again, this is why you talk to your LLM, tell it what you want, and have it help build your workflow.

ryandrake45 minutes ago

Claude telling us to point Claude to a web site written by Claude so that we can use Claude to create a build environment...

CharlesW54 minutes ago

If it's okay to mention my own complementary open source project, Axiom¹ does a good job of helping coding harnesses know how to do this effectively for Apple OS development.

In addition to a deep roster of skills and agencts, Axiom includes several for-LLM tools². xclog, xcprof, xcsym, and xcui are designed to be used by LLMs, and expose capabilities in a token-efficient way. These tools are equally helpful for non-Axiom skills/agents.

¹ Axiom: https://charleswiltgen.github.io/Axiom/ ² Axiom CLI tools: https://charleswiltgen.github.io/Axiom/tools/

semiquaver43 minutes ago

Axiom is excellent, thanks for making it!

zuzululu30 minutes ago

will it work with flutter ?

saagarjha26 minutes ago

Making your app buildable from the CLI is not something I do personally to use on my Mac but it is very useful when you're automating your CI. If you have GitHub Actions set up to build your app, so can Claude, assuming you have the right signing setup on your machine.

stephenhuey31 minutes ago

Thought this was going to be about the new Ruby Native!

https://rubynative.com

“From bundle install to your phone in minutes. To the App Store and Google Play without a line of native code.“

zuzululu29 minutes ago

holy hell $299/app is wild

Schiendelman1 hour ago

I've been using essentially this process (with Claude Code) for about six months. There are a couple of places where I've opened xcode; mostly to update the simulators for new betas of xcode 27, and once to add a target for Apple Watch (and I think something for HealthKit).

Interestingly, since about Opus 4.6, Claude has been able to reason its way into this process on its own. It was clunky until 4.7, and in 4.8 it's managed to find its way around every reason I had to open xcode myself.

recsv-heredoc58 minutes ago

Having to have Xcode installed is more than half the problem. It makes Visual Studio look lightweight.

ryandrake47 minutes ago

Xcode does have (or had, haven't checked for a while) a lightweight "command line tools only" installer. Unfortunately, that installer omits a lot of the actual useful command line tools, like the notary and stapler tools. I also recall that the command line tool only installer leaves out things like the metal compiler, too. Not sure what the point of it is.

dylan60432 minutes ago

> Not sure what the point of it is.

My only familiarity with it is because it's needed by brew. I honestly never looked into exactly what is in the package, but I assumed things like what is installed with -devel packages of yum/apt-get/dnf/etc. Lots of repos have common list of things to install like gcc/make/etc. Again, just guessing, but it's one of the first things I've always run on a new Mac to get it usable for CLI usage.

saagarjha29 minutes ago

It lets you build basic UNIX-like tools.

gumby47 minutes ago

It’s mostly all the emulators and platform APIs.

I’m not defending Xcode (I hate it), just clarifying.

schainks51 minutes ago

I just set up my pipeline to do this exact thing for both the Apple and Android ecosystems, dispatching loads to my mac studio or Linux box accordingly. I moved the runners off GitHub because uptime for GitHub actions has been trash lately, and the Apple Silicon runners are pricey.

Claude was great at figuring out what was broken when and either fixing it, or clicking as far as it could until it needed me.

You could say I'm mostly just IRL hands for the AI now.

hyperhello44 minutes ago

Being outside of the approved development loop has rough edges. How do you keep the app from putting up that permission to access documents folder all the time while you rebuild it?

saagarjha25 minutes ago

They're a paid developer, so they are probably signing the app with a stable identity that avoids this.

mrbombastic60 minutes ago

This is cool but also makes me worried about the tendency with llms for all of us to make bespoke solutions rather than building a better community tool or extending an existing tool to solve the problem. fastlane exists to solve exactly this problem in the mobile space.

ryandrake49 minutes ago

Also, shell scripts as part of a build are usually a little worrying. I'd at least want the build steps to be all integrated into my Makefile or CMakeLists.txt

rvz33 minutes ago

By using "Claude Code"*

* and giving Anthropic all your secrets, env vars, certificates and your source code to them.

kstenerud23 minutes ago

Not if you've got a good sandbox.

sgt1 hour ago

Although this has been well known for years and documented.

dylan60431 minutes ago

Yeah, but not only was this "on a computer" but "with an AI" so it's not the same at all. /s

LatencyKills1 hour ago

I spent seven years as a dev on the Xcode team and this is pretty much my exact workflow these days.