Shouldn’t folks on iOS at least be able to access XCode Cloud
Because it can be triggered by pushes into git, you could make changes to existing code from an iPad or PC and get it built. But you can’t (realistically) do anything that requires Xcode such as adding new things to your project or messing with xib files.
Not just developers who try to do it for a living, but the demographic that used to be called power users (and before that: hackers): the enthusiasts that install things and dig deeper and make tools for themselves and maybe make tools for others or even transition to being career developers.
It’s the developers who build the moat around the walled gardens of mobile, and enthusiasts who bring in the people in their lives. I think Apple knows this and intentionally builds new APIs (while depreciating old ones) just so they can force devs to upgrade their OS’ which in turn forces them to upgrade to the next generation of restrictive hardware and lead them further down the garden path.
I have no insight in to the workings of Apple. I only see what they show to the public. I’m comfortable being wrong about this, but I don’t think I am.
At least macOS is a UNIX under the hood these days (unlike MacOS 9), which provides some 'cross-platform synergies', but looking at where Apple has been taking these UNIX roots with iOS that was probably just a lucky accident. Enjoy it while it lasts (on macOS at least) ;)
That has literally been Apple’s business model since the 80s.
Apple has been well-known as a walled garden since its inception. Some are ok with that, some aren't.
Much of the stuff that Xcode Cloud does is automation that's ~easy with a terminal and some scripting and that many developers end up doing on their Macs, but that is hard to do in the limited computing environment that iOS offers – things like packaging apps for TestFlight with the right signing keys, compressing images, etc. By moving those processes to automation running in the cloud, Apple are making iOS development on iOS more feasible.
Is it logical to do so? No but it is possible and Apple sanctioned. In fact it was featured at last years WWDC
Those devs aren't going to purchase Apple hardware whether Apple sells them cheeseburgers or not, so its more profitable for Apple to sell them cheeseburgers.
But of course that doesn't add to their monopoly profits :-)
Or even Xcode, considering how powerful iPads are these days (M1 chip, etc).
Apple's approach seems to be to use Swift packages as an alternative project type that can be shared across iPads and Macs and, most importantly, do not require support for running binaries outside of an app container.
How this evolves over time depends on Apple's opinions about their operating systems. If they were to basically hand people what amounts to a manufacturer-sanctioned jailbreak, then they could port Xcode to UIKit with all the functionality it has on MacOS, save for the lack of AppKit support. Alternatively, and more likely, what they'll do is add new app extension types to do Xcode-like things in Swift Playgrounds. So if you need to, say, use Rust code in your app; you'd literally download a Rust compiler from the App Store to do that.
Or they could do nothing and be satisfied with the hobbyist-grade, Swift-only programming environment they already ship.
"[author] has been using Xcode Cloud to compile and deploy my rcmd app switcher (https://lowtechguys.com/rcmd) for the past few months, and it’s been a great experience.
I liked that with a single “git push” I could compile, archive, deploy to TestFlight, and send for beta review. I even pushed a fix from my iPhone using Working Copy one time while I was on a train.
These are the pricing plans for those interested:
- 25 compute hours/month: Free*
- 100 compute hours/month: $49.99/month
- 250 compute hours/month: $99.99/month
- 1000 compute hours/month: $399.99/month
* Free through December 2023, then $14.99/month if you choose to subscribe at that time. "
This is interesting, because a month never contains more than 744 hours, so even if you owned your own hardware, you couldn't beat Apple's compute power with only one machine.
If you need more CI „hours“ this is a good way to go. For signing and the workflows a base subscription is maybe a good deal.
https://www.hetzner.com/dedicated-rootserver/brands/matrix-a...
Those parallel Test will get through your hours very quickly.
We've just set up our CI in it (set it up as a Gitlab runner), it seems to work fine. To add more complexity, it isn't even a native iOS app but Nativescript. I think we use it to make the Android builds as well.
I know I'm too hobbyist- and small-business-minded for lots of folks on HN, but that monthly fee is a mind-boggling non-starter for me. I know that cloud services are never the cheapest option and I don't want to come off as a skinflint, but AWS' Mac pricing is just absurd. Two months' rental pays for the machine outright (three, if you upgrade the RAM or storage). I wouldn't leap into running a public-facing service on a machine parked in the back corner of an office somewhere, but it's not a big deal if your CI/CD machine goes offline for a few minutes if power or data connectivity stumbles.
Apple is very unlikely to build a “general cloud” offering. This is built and sold on differentiated services (eg BigQuery, Lambda, Kinesis), not on undifferentiated compute units (ie Apple Silicon even if it is slightly cheaper for the raw hardware).
Meanwhile, every time a developer uses local inference with CoreML, that competes directly with AWS’ revenue.
Apple’s “cloud” offering will be hosted in people’s pockets, powered by electricity consumers pay for, and hardware that Apple sells for a fat profit. And they will keep empowering developers to move more compute over to “the client”.
Apple Silicon is so much more efficient on the desktop, and an AWS competitor might make it worthwhile to consider using aarm64 containers end-to-end. That would be amazing.
You would assume macOS as the operating system, but is that manageable at that scale? Maybe it runs on Linux and cross-compiles? Apple do run their own data-centers, which I assume all run Linux. If there was some headless macOS version and data-center wide management framework for it, I suspect that we would have heard about it. If the Xcode Cloud runs on macOS, does that mean that Apple have some rack mounted servers based on the M1/M2 processors?
Sure, it's a unix system. You can go far with SSHing into a machine and running some commands. Also, they only very recently discontinued MacOS Server (https://support.apple.com/en-us/HT208312)
Hardware-wise, it's either a battery of Mac Minis or Mac Pros, or maybe they've made custom hardware so they can put Apple hardware in a blade server form factor.
All the cloud providers create custom rack servers and even silicon, so why wouldn't they have rack mounted Mx boards? Also, the Mx gives you a lot of power for per watt. Perfect use case of a DC.
They’re spending 10B between 2018 and 2023 to build datacenters in the US.
They’ve been a big customer on all cloud platforms (learning). The last contract with aws is worth at least 1.5b (300m/year but growing since 2018) and ends in about 1.5 year.
Seems like a good place to save billions, and make some more by offering cloud services on efficient systems.
And they've been hiring a lot of infra people since 2020
> Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers. It accelerates the development and delivery of high-quality apps by bringing together cloud-based tools that help you build apps, run automated tests in parallel, deliver apps to testers, and view and manage user feedback.
This requires xcode, which requires a Mac as far as I know.
Tangentially related, in my opinion, native apps built in the tooling offered by the phone's manufacturer (xcode or android studio) will always be superior - to the end-user - than any cross-platform compromise. I'll admit that e.g. react native may have a better developer experience, but you don't build apps for the developers, right?
You’ll still need Xcode to create the project, sign it, manage entitlements, load to test flight, etc.
The web page says it supports test flight.
However, they're making some steps in the direction of letting you develop iOS apps with just an iPad, via new capabilities in Swift Playgrounds: https://support.apple.com/guide/playgrounds-ipad/get-started...
e.g. https://9to5mac.com/2022/01/05/this-to-do-list-app-is-the-fi...
[0] On the Scaleway checkout for the Mac Mini M1, at the bottom: "As required by Apple License, you must keep this Instance for at least 24 hours. You will be able to delete it only after 24 hours.".
It feels like something that may or should be prevented by some laws.
For one thing, it would still be "Apple-branded hardware" if Apple just puts an Apple sticker on it, so would literally be compliant with the same ToS they offer to everyone, but even if it wasn't based on that technicality, they reserve all other rights to their IP, so I don't see any logical or legal reason why they couldn't either make a version of Xcode that ran on an alternate OS or run macOS on other hardware.
Err, allowing it to your self, is not an "exception from their ToS". The ToS, any ToS, only applies to third parties you provide a service/product to. You're free to do whatever you want with it yourself (within the general law of the land).
It's the same reason someone can't "violate" GPL by giving their own code, they wrote themselves, under a closed license as well, or even stop providing new versions under GPL altogether...
Really, the knee-jerk axe grinding on HN has gotten so predictable lately.
You can’t enter into a legal contract with yourself, and you couldn’t legally enforce terms on yourself even if for some bizarre reason you wanted to.
It’s one of the most common methods for shifting income to other countries where the taxes are lower.
The parts of their ToS you are alluding to mostly talks about it being against ToS to run macOS on non-Apple hardware and since Apple makes chips now it’s very possible that the entire Xcloud service is running on Apple hardware.
[1]https://developer.apple.com/documentation/virtualization/run...
it is lease of an entire MacOS VM that must be one 24-hours at a time, along with other restrictions.
Perhaps the stuff runs on MacOS in VMs for the best compatibility, but I’m not sure that’s strictly necessary.
There is something weird about a company that makes it's own hardware and operating system using something completely different in their datacenters. However I don't think that macOS have the tooling required to large scale installation required for something like this.
Save yourself time and money with an M1 Mac mini as a GitHub actions self hosted runner.
Pays for itself quickly, you can upload apps direct to App Store Connect from Xcode cli tools already.
I mean, that’s Xcode on your machine. Why would Xcode on someone else’s machine be any better?
If I understand it correctly, it would also mean that use Xcode Cloud to release an application into the App Store. Then no single developer needs access to submit new versions.
What if you've outsourced your app development; do you really want random developers spread across the world from having the ability to make production builds?
Anyway, there's more authorative sources on the internet about "why CI" than some guy (me) in a comment section.