Readit News logoReadit News
lwouis · 7 months ago
This tool says "Xcode replacement" and "Xcode-free development". I thought there is no way they can build apps without Xcode. How would they replicate the libraries, compilers, etc.

I dug more and of course they don't: "Though we don’t rely on the Xcode build system, you still need to install Xcode for the iOS SDK and toolchain"

I think they should clarify their messaging. This is not a replacement or an alternative. It's a layer on top designed for what they think is a better experience.

rockbruno · 7 months ago
I think you are mixing some different concepts here. It's not that this is a layer on top of Xcode/xcodebuild, it's just that Apple today happens to package everything iOS/Swift-related together with Xcode releases. So even if you couldn't care less about the Xcode IDE itself or the xcodebuild build system, you still need to have it because this is the only way for you to download / install those toolchains. Apple could provide these separately, but they just don't.
kabiroberai · 7 months ago
xtool creator here, this is correct. it wouldn’t have been possible to support Linux if xtool was just a layer on top of Xcode, as Xcode doesn’t run on Linux.

we only need Xcode to be installed on macOS since it bundles the iOS SDK (ie all the header files.) similarly, we ask the user to supply a copy of Xcode.xip during the setup process on Linux in order to extract the SDK.

it definitely depends on your definition of “replacement” in the end, but I (and most people I’ve spoken with in the iOS community) would consider “Xcode” to be the Xcode build system, user interface, and proprietary tooling. xtool doesn’t rely on any of this, not even for signing and installation. you can (read: must on Linux, may on macOS) use it with the open-source Swift and Clang toolchain + LLVM’s LLD linker and MachO tooling. Codesigning uses zsign, an MIT-licensed x-platform codesign alternative, and installation relies on the open source libimobiledevice project, which is installed by default on many Linux distributions (eg Ubuntu).

notpushkin · 7 months ago
Would it be possible to get just the SDK from the Xcode package? Like Asahi installer streams only the relevant parts of macOS images from Apple’s servers.
ImPostingOnHN · 7 months ago
It sounds like this "cross-platform xcode replacement" isn't cross-platform, and ios app developers still need macos?
firecall · 7 months ago
JetBrains used to develop AppCode:

  AppCode

  A smart IDE for iOS/macOS development

  AppCode is no longer available as a commercial product as of December 14, 2022.

  https://www.jetbrains.com/objc/

lwouis · 7 months ago
It seems that Fleet will support building XCode apps. It looks like a big regression from AppCode. As of today Fleet doesn't compile my macOS app. I try regularly on new updates. No alternatives, unfortunately
Larrikin · 7 months ago
Fleet will also most likely get abandoned as people who pay for an IDE highly prefer the older one and people who want VSCode use VSCode

I also think any revival of AppCode is also dead as JetBrains is all in on Kotlin everywhere. iOS multiplatform support hit stable recently.

sandebert · 7 months ago
What's Fleet?
mdaniel · 7 months ago
It likely doesn't help the ObjC part of that story, but they moved the Swift part out into a CLion plugin https://plugins.jetbrains.com/plugin/8240-swift

Regrettably I didn't see that they did anything with the ObjC part, choosing to /dev/null it

Due_Winter_5330 · 7 months ago
Objective-C has been supported in Clion for years: https://www.jetbrains.com/help/clion/objective-c-c-support.h...
pharaohgeek · 7 months ago
Unfortunately, even that isn't supported any longer. I do a lot of server-side Swift development and would LOVE to be able to ditch Xcode for CLion and the Swift plugin.
flax · 7 months ago
Would this theoretically allow a Flutter app developer to build and deploy an ios app from Linux? God, I hope so.
candiddevmike · 7 months ago
It technically violates the Apple Developer Agreement AFAIK, but that seems like yet another lawsuit waiting to happen IMO.
ronsor · 7 months ago
Apple won't do anything right now as they're certainly afraid the courts* will slap them hard.

*Both US and EU now

petabyt · 7 months ago
People have been doing hackintoshes and macos VMs for years... And apple hasn't really done anything. So I doubt this tool will provoke them.
_blk · 7 months ago
Yeah weird world. When Gates bundles IE that no one wants it's an abuse of power but when Jobs shoves his apples down your throat just to (try to) publish for their platform it's all OK.. Oh, or was that the lawsuit waiting to happen? ;)
notpushkin · 7 months ago
I believe it allows usage on “Apple-branded computers”, so building iOS apps with xtool on Asahi is probably legit.

But yeah, I would probably use this for testing only, and do actual releases from macOS proper.

tgma · 7 months ago
IIRC it is only a potential issue if the host machine isn't made by Apple. You can install Linux on a Mac and use this.

IANAL yada yada.

nar001 · 7 months ago
Does it? You still need to install Xcode for the iOS SDK, so they're not really doing anything wrong?
loic-sharma · 7 months ago
This project helps but isn’t enough alone:

1. Dart can’t cross-compile from Linux to iOS yet. You could use Dart’s interpreter instead, but that’d significantly regress performance.

2. Flutter iOS projects use the Xcode project format, you’d need to migrate that to xtool’s project format

3. Flutter hasn’t finished migrating its plugin ecosystem from CocoaPods to SwiftPM - any plugin that hasn’t migrated to SwiftPM yet likely won’t work with xtool.

Cloudef · 7 months ago
Afaik its already possible with darling. Nixpkgs also has xcbuild replacement, but not sure if it can handle codesigning.
gman83 · 7 months ago
Just use something like CodeMagic, I wouldn't risk getting your Apple account banned.
awinter-py · 7 months ago
xcode, the tool that takes 9 hours to download every few months and makes random edits to my XML and plist files? that xcode?
novoreorx · 7 months ago
Reminds me of Sweetpad (https://sweetpad.hyzyla.dev/), which is a bit tedious to setup, XTool seems to provide a better DX, huge wish for this project to grow!
novoreorx · 7 months ago
Also it shares something in common with XcodeGen (https://github.com/yonaskolb/XcodeGen), especially on using a yaml format to define the project's information
walterbell · 7 months ago
Earlier, "Build iOS Apps on Linux and Windows", https://news.ycombinator.com/item?id=43952239
bdcravens · 7 months ago
I see the Github org is "xtool-org". I wonder if XTool the company (makes laser engravers and other creative/crafting tech) will take issue.