A few months ago I shared my Swift SDK for Darwin, which allows you to build iOS Swift Packages on Linux, amongst other things. I mentioned that a lot of work still needed to be done, such as handling codesigning, packaging, and bundling.
I’m super excited to share that we’ve finally reached the point where all of these things are now possible with cross-platform, open source software. Enter, xtool!
[…]This means it’s finally possible to build and deploy iOS apps from Linux and Windows (WSL). At the same time, xtool is SwiftPM-based and fully declarative, which means you can also use it to replace Xcode on macOS for building iOS software!
↫ kabiroberai
While this is obviously an impressive piece of engineering that’s taken countless years to fully put together, the issue this doesn’t address are Apple’s licensing terms when it comes to Xcode and development for Apple’s platforms. The Apple Developer Program License Agreement clearly forbids installing Xcode and the Apple SDK on non-Apple branded devices, and as this new xtool requires you download Xcode.xip and use it, it seems it violates these terms.
Now, as far as I’m concerned, these terms are idiotic and should be 100% illegal, but if you’re an Apple developer who relies on your Apple developer account to make money, using a tool like this definitely has the potential to put your developer account at risk. For experimentation, sure, this is great, but for any official work I would be quite weary until Apple makes some sort of statement about the matter, which is highly unlikely to happen.
Perhaps the courts can, at some point, have a say here – especially in the EU – but even then, Apple can always find or manufacture some reason to terminate your account if they really want to. If you want to develop on your own terms, perhaps developing for Apple platforms is not what you should be doing.
Why no one is saying that xtool is built around Vscode ?
djame,
someone please correct me if I am wrong, but I think the tools from xcode are needed for signing and submitting.
Read the terms Thom linked to. They’ve given themselves a lot of rights over a developer’s use of xcode. They’ll probably overlook developers “misusing” their tools as long as those developers are making apple money. But if apple wanted to, I suspect their corporate lawyers would be able to declare a breach of contract for anything that doesn’t align with apple’s interests. Wouldn’t you think so?
@Alfman,
and what exactly is wrong with that? Why not just stay clear of Apple, when you don’t like their terms, especially when terms are made clear upfront? A contract is an expression of will between two accountable parties, isn’t it? Either agree and stand by it or leave it.
I do believe that freedom of contract is a high good (except monopolies of course).
Andreas Reichel,
Well, since you are mentioning it as a problem yourself, a monopoly is just one step away from the duopoly we are presently stuck with.
@Alfman
I do always appreciate your input and exchange, but I do not buy into this one.
You can run a company completely without any Microsoft or Apple. You can live your normal daily life completely without any Microsoft or Apple. In my opinion the only threat comes from large Government contracts to Microsoft.
So where is the Duopoly? As far as I can see stupid consumers just chose one of them because they are lazy. This does not fall into “cornering a market”.
Andreas Reichel,
Your not buying that we have a mobile duopoly?
Or you’re not buying that a duopoly is bad?
It seems you may not actually agree with your own offhanded comment that monopolies go against freedoms.
The mobile duopoly situation couldn’t possibly be any more clear.
https://gs.statcounter.com/os-market-share/mobile/worldwide
I’m sure you already know this, it’s just a matter of admitting you are ok with the duopoly.
Excuse me, what is going on here?
The topic was `XCode` (which implies Desktop/Workstation software) and in your original response, you nowhere mention `Mobile`. I indeed see no Duopoly in the Desktop/Workstation software market.
`Mobile` is a complete different beast of course, I even would speak about 2 Monopolies here and agree with you that this is bad. But what has that to do with XCode and the license terms?
Andreas Reichel,
Ah, I see what happened. While the development takes place on macos, iphone developers use it too, which is what I meant when I said “I think the tools from xcode are needed for signing and submitting”. While xcode is used for development across the apple ecosystem, iphone is by far the largest. I didn’t say it clearly sorry.
I was referring xcode’s requirement as they apply to mobile developers. Technically these terms apply to apple products in other markets too: desktop software, VR, smart watches (I guess), but apple has less control over these markets.
That’s not the point of my comment. The screenshot itself clearly shows that xtools is built around VScode (see the icon on the upper left window) so what the author did, which is nice, was to built a set of wrappers that interface VCode with xcode signatures modules and its SDK. It’s not a full reimplementation of Xcode that would work on mac, linux and windows. What I don’t understand is why neither he or Tom mentioned it.
Yes, you highlighting vscode is terrific, especially given it’s not really aligned to the typical Apple terms.
Alfman is correct in his duopoly point, the iphoneos -sdk is a requirement of xtool. That leads to a problem, because if I’m correct Devs interested in supporting older platforms have an issue, because the latest Xcode will be a requirement to install the latest iphoneos sdk, and I think that rules out platforms earlier than 15, which is sad given xtool should be ideal to support desktops right back to 11.
// clearly forbids installing Xcode and the Apple SDK on non-Apple branded devices, and as this new xtool requires you download Xcode.xip and use it, it seems it violates these terms.
Not really, there’s nothing stopping you installing linux or windows on an apple branded device. This is a good and common way to get some extra life from a device which apple have stopped supporting, I have a couple of old macbooks running linux that are still useful.
If the end user decides to violate the terms that’s entirely on them.
I am replying to you on a 2009 MacBook Pro running Chimera Linux. So, I agree with your point about getting extra life out of old Apple hardware.
Reading the license, installing the Apple SDK on this “Apple branded device” is probably withing the boundaries of what the Devloper Agreement allows. Unfortunately, it also clearly states that I can only connect using my Apple Developer Account via Apple branded products like Xcode. So using my account via xtool is a violation of the terms.
Unfortunate.
>but for any official work I would be quite weary
I think you meant “wary” 😀
Those terms would be unenforcable as otherwise any unofficial emulation would be illegal, when the right to emulate has already been established.
I do agree that using or developing for Apple platforms is a bad idea in general.