Hacker News new | past | comments | ask | show | jobs | submit login

Has anyone been able to use darling for iOS CI jobs yet? Admittedly I haven't researched this in a while, but one of the biggest hurdles in large scale iOS development is sane DevOps infrastructure. I know due to Apple's TOS that you will never be able to build, sign, and distribute your app on non-Apple hardware. But i'd love to use darling to run unit tests/CI jobs on commodity cloud infrastructure.

Even if you do get dedicated mac instances, managing them is a bit of a nightmare since MacOS isn't designed to be headless.




I was doing this--using Darling to run the various tools from Xcode on Linux so I could build one of my macOS projects--five years ago and it worked great, but I haven't done it much since as at some point I started using MacStadium to rent Mac Minis. (I want to start using Darling again though, on the assumption that it is still working for running more GUI-oriented build tools--stuff like ibtool and actool, which I have sadly started to need, and now particularly the actual xcodebuild stuff, as Flutter is forcing me into that world due to its usage of CocoaPods... I hate it :/--from newer versions of Xcode.)


I was just starting in to Flutter after choosing between it and React/Vue native.

Your comment is making me want to do a 180 as Flutter’s future is now scary to me.


what happens to flutter?


Flutter has two choices on iOS:

1. Be the change and make a framework that helps people create new and better toolchains for making iOS apps. It's more work, and requires taking the challenging path sometimes, but it's the better play for the long-term success of the community.

2. Use existing solutions that are locked in Apple's ecosystem, thereby railroading the community so that they too are locked in to Apple's ecosystem.

Why Apple's ecosystem worries me: Apple has shown time and time again that they will do the absolute minimum required to get people in the door before shutting it behind them. If someone else tills the soil and grows an orchard of delicious fruit that's reasonably priced and good for you, Apple will spend millions to fly in fruit trees with fruit that's almost as good and put a 'free with contract' sign up. What they don't mention is that they have no intention of watering the trees once the "competition" goes out of business.


This is for Unity specifically, but people are building IOS apps on Windows.

https://assetstore.unity.com/packages/tools/utilities/ios-pr...

I doubt any employer would let you do this though. And I have my Mac Mini for recording music and building IOS apps. But it is neat to see it's possible


There are plenty of much smaller companies and some of them would do definitely do it.


>I doubt any employer would let you do this though.

Why?


Probably because it runs the risk of Apple revoking your developer account for supposed noncompliance, meaning your access to the closed iOS garden - and thus your business - disappears overnight.


For bazel users there is also this project[0] which runs the tools natively on Linux without requiring this layer. Although you lose tools like ibtool / actool which don't have open source re-implementations.

[0]: https://github.com/apple-cross-toolchain/rules_applecross


How do they obtains the mac/ios/... SDKs? I thought they were packed with Xcode, and it wasn't permissible to extract them?


For unit tests, can you "just" build on Linux natively? I'm pretty sure Swift and Objective C are supposed to both work on Linux, although I assume library/API surface limits that.


This does generally work, but it requires a lot of manual effort to setup the environment correctly with Xcode's SDKs to satisfy the compiler / linker.


Also a mac mini is £700 which is the equivalent of ~3 days work for most trades here in Britain. I you value your time as much as a joiner and if it’s going to take you more than 3 days to get your environment setup and keep it maintained then you’re better off just buying a mac.


I work in games for a fully remote company. a Mac mini takes ~5 hours to compile and cook (read: prep the assets) for our game. It's not reasonable to ask someone to have that mac at home, and even if it was, you have to have it somewhere where it's available, has high speed internet, and that person is responsible for the hardware - making sure it stays on when it's needed etc. That person also needs to deal with any hardware failures/ warranty replacements. Instead, we could lease a mac from AWS for £20 for a day, run a build and use that.

That doesn't mean that this is a scalable solution for running our business on, but for the occasional one off mac build to make sure it's not fallen behind, it works just fine for us.


Scaleway will rent you one for $2.40/day https://www.scaleway.com/en/hello-m1/


The difference between $20 per day and $2.40 per day at our current scale is practically 0 - we do a build every 2 weeks or so. We would save $500 a year on our current scale, which is likely less than it would cost in my salary to set up a scaleway account, spin up an M1 instance and configure it. Definitely worth it if/when we look at having more machines up and running though, thanks!


First world problems.

In some other countries I have seen an iMac been shared across teams that would take turns at the device.

In Germany I would state the same statement, we live between Windows and macOS on the office, but I also have some care for those that aren't so lucky.


Geez yeah if I was making roughly $1k USD every three days I would definitely be a Mac guy, no question.


Plus, I’ve found that most iOS codebases, tend to rely on parts of Foundation and the Objective-C runtime that are not implemented on Linux, even if the code doesn’t touch UIKit at all.


In this case I meant taking an approach similar to this one for bazel[0] that is not limited to only code that works on Linux. It would only allow you to build on Linux and would require any testing / running would still happen on macOS, but that might still be worth it in some cases. Theoretically you could deploy your iOS app that way as well.

[0]: https://github.com/apple-cross-toolchain/rules_applecross


Ah, I see what you mean. Yes, that's possible; I think Google actually does this internally?


Not a better use of time to get them implemented?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: