5 ms·
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 deve
by gh123man 5y ago
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.
- yjftsjthsd-h 5y agoFor 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.
- SmileyKeith 5y agoThis 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.
- saagarjha 5y agoPlus, 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.
- SmileyKeith 5y agoIn 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 https://github.com/apple-cross-toolchain/rules_applecross
- saagarjha 5y agoAh, I see what you mean. Yes, that's possible; I think Google actually does this internally?
- pwdisswordfish9 5y agoNot a better use of time to get them implemented?
- willyt 5y agoAlso 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.
- maccard 5y agoI 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.
- nicoburns 5y agoScaleway will rent you one for $2.40/day https://www.scaleway.com/en/hello-m1/ https://www.scaleway.com/en/hello-m1/
- maccard 5y agoThe 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!
- pjmlp 5y agoFirst 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.
- 999900000999 5y agoThis is for Unity specifically, but people are building IOS apps on Windows. https://assetstore.unity.com/packages/tools/utilities/ios-project-builder-for-windows-15522 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
- stuaxo 5y agoThere are plenty of much smaller companies and some of them would do definitely do it.
- charcircuit 5y ago>I doubt any employer would let you do this though. Why?
- nmfisher 5y agoProbably 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.
- saurik 5y agoI 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.)
- joshspankit 5y agoI 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.
- 0x001D 5y agowhat happens to flutter?
- joshspankit 5y agoFlutter 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.
- SmileyKeith 5y agoFor 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 https://github.com/apple-cross-toolchain/rules_applecross
- angerman 5y agoHow do they obtains the mac/ios/... SDKs? I thought they were packed with Xcode, and it wasn't permissible to extract them?