Live data from Hacker News

Building and shipping Mac and iOS apps without opening Xcode

scottwillsey.com

191–200 of 248 posts

Re: Building and shipping Mac and iOS apps without opening Xcode

#191

Earlier quoted context omitted.

> require you to run the agent on your Mac instead of in a Sandbox You don't have to! All recent Macs come with nearly zero perf cost virtualization. You can easily run Mac or Linux VMs assuming same architecture. Use it all the time for development and whatever. Use Tart [1] or VirtualBuddy [2], both open-source, for a packaged solution. Or in the spirit of this post, vibe code your own wrapper around the OS API [3]…

"Apple Containers" I love how people say this like Apple finally created a native solution... They didn't. It's just a linux vm running normal docker engine.

> It's just a linux vm running normal docker engine

OCI compatible, but not docker

https://github.com/apple/container/blob/main/docs/technical-...

Actually makes use of Virtualization.framework mentioned above.

Re: Building and shipping Mac and iOS apps without opening Xcode

#193
post #92

Earlier quoted context omitted.

That's good to hear. I never even tried to make anything for macOS because I opened Xcode and.. well, you know.

Nah. I usually use Xcode GUI, but there's been a lot of discussion about using a CLI workflow, for many years. Should be easy to find. Hope you like long argument lists. xcodebuild has a crazy long parameter list. https://developer.apple.com/documentation/xcode/xcode-comman...

From my experience the CLI works but is not well documented.

Re: Building and shipping Mac and iOS apps without opening Xcode

#194

What continues to bother me is just that developers who don’t have the budget are pretty much pushed out of iOS development because they can’t afford a Mac. And every time that Apple increases the price of their products, more people are blocked from being able to develop on them.

People not having access to tech is bothersome, but nowadays Apple offers affordable machines compared to the same/worse specs from competitors. For example a MacBook Air with Apple Silicon and a moderate amount of memory.

Why should you need a Mac to build for iOS at all? What makes Apple so special here? Cross-compilation toolchains aren't forbidden alien technology.

Forcing people onto Macs is such a pathetic way of extracting rent from developers and makes workflows worse. No you can't just build and debug your app from your Windows or Linux workstation because we want you to buy hardware you don't need. Sorry we only support Xcode on the latest version of MacOS, how else will your build machine roll out of the OS support window and make you replace a functioning machine?

It's especially nice when you work on projects that aren't iOS/Apple native and you don't get Mac workstations. You end up with this wonderful mess of shared machines and half assed tools because you just need the bare minimum to push a build to a phone.

Re: Building and shipping Mac and iOS apps without opening Xcode

#195

Earlier quoted context omitted.

People not having access to tech is bothersome, but nowadays Apple offers affordable machines compared to the same/worse specs from competitors. For example a MacBook Air with Apple Silicon and a moderate amount of memory.

Why should you need a Mac to build for iOS at all? What makes Apple so special here? Cross-compilation toolchains aren't forbidden alien technology. Forcing people onto Macs is such a pathetic way of extracting rent from developers and makes workflows worse. No you can't just build and debug your app from your Windows or Linux workstation because we want you to buy hardware you don't need. Sorry we only support Xcode…

I don't disagree with you, but we're talking about affordability which is a different topic.

> It's especially nice when you work on projects that aren't iOS/Apple native and you don't get Mac workstations.

If you develop natively for macOS, then you probably need the OS for it. It's the same for Linux and Windows. But building is not the biggest hurdle because you can build in your usage-based-billed/free CI as well the same way you do for other platforms.

For complete native development (system APIs, OS interactions, native UI) against macOS/iOS on PC, Apple needs to open those OSes for PCs/Pixels/Samsungs/etc. This is a software issue, not hardware. Otherwise Apple silicon Macs are less restrictive than PC hardware in general!

Re: Building and shipping Mac and iOS apps without opening Xcode

#196
post #92

Technically, you are using Xcode. Xcode is a [buggy as hell] GUI wrapper for a lot of system-level UNIX utilities and apps [which are generally, not so buggy]. Using CLI to release apps is a pretty old practice; at least as long as I've been doing it (I released my first Xcode app in 2012).

That's good to hear. I never even tried to make anything for macOS because I opened Xcode and.. well, you know.

If you write Qt applications, Qt Creator is perfectly usable and as it's cross-platform you only need to be familiar with one IDE. It ships with its own deploy command which packages the app. You still need to run code signing/notarization last time I checked, but if the complaint is the XCode GUI then no problem there.

Re: Building and shipping Mac and iOS apps without opening Xcode

#197

Technically, you are using Xcode. Xcode is a [buggy as hell] GUI wrapper for a lot of system-level UNIX utilities and apps [which are generally, not so buggy]. Using CLI to release apps is a pretty old practice; at least as long as I've been doing it (I released my first Xcode app in 2012).

Xcode’s a lot more than a wrapper for UNIX utilities. For example, it has an entire build system. It doesn’t just invoke xcodebuild under the hood—and even if it did, xcodebuild uses the exact same code to build your projects as the IDE.

Most of the problems that I saw people have with Xcode over the two decades that I worked on it were the result of one fundamental problem: They wanted to work a different way than Xcode is designed to work, and jumped through a ton of hoops to do so, and then blamed Xcode for not accommodating their intentional working at cross-purposes.

A good example: An app that considered itself “large” because it had a thousand tiny static library targets each with only one to three or so ObjC classes. Far smaller than Xcode itself, but because they insisted on working that way—for no real articulable benefit besides “that’s how we want to work”—their project took hours to build from scratch instead of minutes like much larger projects that have many fewer targets.

Re: Building and shipping Mac and iOS apps without opening Xcode

#198

What continues to bother me is just that developers who don’t have the budget are pretty much pushed out of iOS development because they can’t afford a Mac. And every time that Apple increases the price of their products, more people are blocked from being able to develop on them.

It’s not really that onerous for a platform to require that, to develop for it, you need to actually take part in it. For Apple platforms that means becoming a Mac user. For IBM i and z that also means getting substantial hardware or paying for accounts and licenses (once you want to go beyond learning).

You can develop for Linux and BSD and Haiku and all sorts of other platforms for free. If the cost is what matters to you, then just do that. If you’re doing it as a business, though, consider that you’re extremely lucky to be able to just buy a low-end device and a low-end system and that’s all the capital investment needed (plus the US$100/year membership as recurring opex).

Re: Building and shipping Mac and iOS apps without opening Xcode

#199

One down-side to this is that it does require you to run the agent on your Mac instead of in a Sandbox. I do this too and there are lots of problems I can't solve in a sandbox. I know a lot of you are throwing your hands up at the years of security practices we're throwing out the window when we do that. The fact that xAI uploaded someone's home directory, including their SSH keys, is giving me serious pause at my ch…

[flagged]

Re: Building and shipping Mac and iOS apps without opening Xcode

#200

Earlier quoted context omitted.

People not having access to tech is bothersome, but nowadays Apple offers affordable machines compared to the same/worse specs from competitors. For example a MacBook Air with Apple Silicon and a moderate amount of memory.

Why should you need a Mac to build for iOS at all? What makes Apple so special here? Cross-compilation toolchains aren't forbidden alien technology. Forcing people onto Macs is such a pathetic way of extracting rent from developers and makes workflows worse. No you can't just build and debug your app from your Windows or Linux workstation because we want you to buy hardware you don't need. Sorry we only support Xcode…

Because it would cost Apple a substantial amount of money to make it possible to build your code for iOS on other platforms in any sort of supported fashion. So all the stuff they invest very substantial amounts of money into creating and maintaining are only going to be licensed for use on the hardware they sell under the latest operating system it runs. Asking for more is asking them to spend more money without any evidence of a commensurate return.

If you can produce a properly structured submission to the App Store ingestion pipeline without using a Mac, then I doubt Apple will care. But that doesn’t mean they’re obligated to help you, and especially not to spend millions of dollars to do so.

Post reply on HN