macOS Catalina won't be able to execute 32-bit macOS executables, nor will we be able to build such executables on macOS Catalina because we'd need Xcode 9.4, which doesn't work on Catalina (#6217).
Since we won't be able to build nor test 32-bit apps on macOS Catalina, continued 32-bit support will mean a lot of work for very little gain, so I think we should drop 32-bit support in Xamarin.Mac.
Tasks:
onlyOn64 flag to the availability attributes default to true for macOS + ignore it completely in the generator. #6595[Obsolete (Error = true)] stubs? [Moved to #7704]No doubt about the tasks - but the big question is when ? :)
We can assume an Xcode 11.x, in early 2020, to require macOS 10.15. Until then we build packages on 10.14 (which still supports Xcode 9.4).
Before that it's largely not a technical (only) decision... c.c. @chamons @davidortinau
Let me look into this from a management angle... I have wanted to kill 32-bit for a long time as you know.
Until then we build packages on 10.14 (which still supports Xcode 9.4).
Correct, but we (the developers) won't be able to build xamarin-macios on Catalina, which would make our lives quite complicated if we wanted to upgrade (in particular when Catalina becomes stable in fall and everybody else upgrades).
It's possible to come up with a dual system that doesn't support 32-bit when built on Catalina, but that means spending time implementing something that is about to die anyway.
@rolfbjarne @spouliot - We have 馃憤 to nuke 32-bit support, customers who need that can use an older Xamarin.Mac.
Just keep building/testing on pre-Catalina?
Which should be part of the test matrix anyway, along with Catalina? Right?
Until such time as there are no supported pre-Catalina systems?
Are there no longer 32bit simulators, to better emulate memory usage?
@jaykrell this only applies to macOS, not iOS.
There are 32-bit iOS simulators if you run on iOS 10.3 or lower (you must also select an iPhone 5 (or earlier) device as the simulator device).
If you try to build an i386 XM Unified Project you get
/Users/donblas/Projects/Unified/MMP: Error MM0144: Building 32-bit apps is not supported anymore. Please change the architecture in the project's Mac Build options to 'x86_64'. (MM0144) (Unified)
and if you build classic w mmp enabled you get:
Error MM0143: Projects using the Classic API are not supported anymore. Please migrate the project to the Unified API. (MM0143)
I hope the IDE gets updated at some point, but I'm going to call that "done" and good enough for now.
Most helpful comment
Correct, but we (the developers) won't be able to build xamarin-macios on Catalina, which would make our lives quite complicated if we wanted to upgrade (in particular when Catalina becomes stable in fall and everybody else upgrades).
It's possible to come up with a dual system that doesn't support 32-bit when built on Catalina, but that means spending time implementing something that is about to die anyway.