lwouis 17 hours 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 17 hours 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 6 hours 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 12 hours 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.

      • kabiroberai 6 hours ago

        I looked into streaming but afaict the XIP format doesn’t support random access the same way that ZIP does. specifically because 1) it doesn’t seem to have a Central Directory like ZIP and 2) it has an optimization where files can be hardlinks to other files (by ID) in the XIP, so if you want to extract a file but all you get is a hardlink ID, you can’t expand the contents until you encounter and expand the hardlink pointee. it’s possible I’ve missed something, open to ideas for sure.

      • isodev 8 hours ago

        There are some components that may be downloadable separately but they really are part of Xcode. One ring to rule them all.

    • ImPostingOnHN 10 hours ago

      It sounds like this "cross-platform xcode replacement" isn't cross-platform, and ios app developers still need macos?

      • dadoum 9 hours ago

        But that's wrong. You don't need macOS. That's why they say "cross-platform Xcode replacement". You just need the SDK, which can be used on every platform.

        • mathstuf 9 hours ago

          IIRC, you need to run on Apple hardware for a valid SDK license. VM or Asahi or Hackintosh would suffice, but not a VM on a random Linux box. Or did the terms change lately?

firecall 17 hours 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 17 hours 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 13 hours 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.

flax a day ago

Would this theoretically allow a Flutter app developer to build and deploy an ios app from Linux? God, I hope so.

  • candiddevmike a day ago

    It technically violates the Apple Developer Agreement AFAIK, but that seems like yet another lawsuit waiting to happen IMO.

    • ronsor 21 hours ago

      Apple won't do anything right now as they're certainly afraid the courts* will slap them hard.

      *Both US and EU now

      • saagarjha 20 hours ago

        They’re still rejecting Fortnite so I don’t think they’re particularly scared of anything

        • jchw 18 hours ago

          Epic Games sure is proving to be a formidable opponent, but they might be getting a little optimistic with thinking that Fortnite will be allowed to return to the App Store; after all, while they have been squabbling over App Store policies, I don't think any of the rulings imply that Apple still can't keep specific titles banned from the App Store at their discretion. In that particular case I kinda feel like Apple might be right to not be afraid, at least not right now.

          (P.S.: Personally, I initially thought Epic Games was stupid for flagrantly violating the ToS on purpose. Was that really needed to actually file the lawsuit? I dunno; I'm no expert. But it looked stupid. It looks a lot less stupid now, but it still kinda looks like a tactical mistake.)

          Maybe they needn't be afraid here either, but from a risk perspective it does seem like causing a stink here may not be their best move. They're still going to aggressively try to railroad people into developing on Mac; there's no iPhone Simulator on Windows or Linux after all.

          • yard2010 17 hours ago

            IMHO it's a matter of principle, showing the bully he has limited power no matter how big his muscles are.

            • chuckadams 11 hours ago

              In Epic's case it's just another bully who wants a piece of the first bully's turf.

              • solarkraft 9 hours ago

                Epic Games may do some despicable things too (this is about micro-transactions after all), but (as a software developer) in this fight I still find it reasonable to root for their side - them winning improves the world for a lot of us.

              • tough 9 hours ago

                Goliath vs Goliath

    • petabyt 20 hours 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.

      • karlgkk 17 hours ago

        A long while ago, they put some company selling hackintoshes straight into the ground. Nobody tried since

      • conception 20 hours ago

        Apple has killed the Hackintosh…. It’s just bleeding out still.

        • ofrzeta 19 hours ago

          How so? Seems like Hackintosh got kind of obsolete with Apple Silicon.

          • cyberax 17 hours ago

            You can't install XCode on non-Apple devices. Or use iMessage.

            • johnisgood 15 hours ago

              Is this the case? How does that work? Genuinely curious. I remember I had macOS (Mac OS X, actually) on my PC. My last Hackintosh was Mac OS X Leopard. Everything seemed to work well... back then. I even had XCode working.

            • cosmic_cheese 11 hours ago

              iMessage can be made to work with a hackintosh. You just have to go the whole way in making your hackintosh fully Mac-like with a fake but plausible/realistic serial number and expected network setup. You can’t stop at just getting macOS installed and booting.

              I’ve had multiple installs in the past where it worked fine.

              • jonhohle 7 hours ago

                Who minds committing a little wire fraud and possibly screwing over some chump who really owns that serial number?

                • cosmic_cheese 5 hours ago

                  How is it wire fraud?

                  While it’s ultimately up to the person doing the hackintoshing and thus an “honor system” thing, all the guides are pretty explicit about how you should generate serial numbers that are syntactically valid but cannot belong to real machines, for example that of a 12” Macbook manufactured in 2020 in Cork, Ireland (no such machine exists, as they were discontinued in 2019 and manufactured in China). That way there’s a small chance of collision with other hackintoshers, but no threat of accidentally using the serial of someone’s real Mac.

            • zImPatrick 12 hours ago

              you can still install xcode - and also still use imessage if you configure your vm correctly, see kholia/OSX-KVM

    • notpushkin 12 hours 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.

    • nar001 15 hours ago

      Does it? You still need to install Xcode for the iOS SDK, so they're not really doing anything wrong?

    • tgma 21 hours 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.

    • _blk 21 hours 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? ;)

      • freeamz 21 hours ago

        Same thing with the bank bail out, if Bush did oh my we will never hear end of it, but if cool president who smokes weed and get down some good music, then no one really call him out on it.

  • loic-sharma 5 hours 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.

  • gman83 16 hours ago

    Just use something like CodeMagic, I wouldn't risk getting your Apple account banned.

  • Cloudef 21 hours ago

    Afaik its already possible with darling. Nixpkgs also has xcbuild replacement, but not sure if it can handle codesigning.

awinter-py 10 hours 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?

jasau 5 hours ago

Would be cool to have similar tooling (de-attached from XCode) for live previewing interfaces built with Swift UI.

bdcravens 10 hours 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.

waynecochran 10 hours ago

The screenshot has a vscode icon?

  • bdcravens 10 hours ago

    Yes, because the tool itself is just a command line app, replacing the build tools, but not the IDE. You edit the code in your tool of choice.

pjmlp 15 hours ago

More likely a command line xcodebuild replacement.

woleium a day ago

no android support?

  • landr0id 21 hours ago

    ...this is for building apps targeting iOS and macOS on non-macOS platforms. Why would Android support be necessary?

    • thayne 21 hours ago

      So you can build iOS apps on your android device?

      If for no other reason, it would be gloriously ironic.

    • woleium 21 hours ago

      Oh, i misunderstood. my bad!

      I thought it was for compilation of ios apps for linux and macos.