Can someone here already confirm if everything works with macOS 10.15 Catalina and building apps with the latest stable release of Visual Studio for Mac? Espacially creating release builds? Because many of the mono components are listed in the 32-Bit depricated app list.
Yes, it can. I knew there were several version folders in the Xamarin.iOS framework but it only consumed the current folder.
My OS has updated to Catalina and I'm using the latest version of XCode and VS(Xamarin.iOS) now.
However, the arm-darwin-mono-sgen and simlauncher32-sgen are still in the folder. It means you could still build 32-bit project using current Xamarin.iOS.
Answers
The apps are not allowed to be published due to the 32-bit issue, not the mono.
And we should build a 64-bit architecture since iOS 11: https://developer.apple.com/documentation/uikit/app_and_environment/updating_your_app_from_32-bit_to_64-bit_architecture?language=objc
So I don't think this will be an issue on Catalina.
@LandLu My apps are already updated for 64-Bit since it was possible. But I get a hint from time to time that mono-sign (for example) is not optimized and needs to be fixed. This "app" is listed in the deprecated software list because it is only 32-Bit. That's why I'm not sure if I can update to Catalina and still be able to build, debug and publish my apps properly.
Where do you get this message? And what does mono-sign mean? If you consumed a third party library that used the previous 32-bit Apis this could occur.
The mono library keeps updating to be compatible with the iOS versions. So I don't think this could be the mono's issue.
See the attached image. I have no third party software for Xamarin installed. So there is for sure still some 32-Bit stuff left. Sometimes I get the message when I compile my apps in release mode but not every time (tested at the very same app). The message tells me that the software mono-sign (or was it mono-sgen?) is not still 32-Bit and needs an update.
This is a 32-bit package in the Xamarin.iOS. You will find another package: arm64-darwin-mono-sgen continuing searching.
32-bit packages should be included in the Xamarin.iOS for the situations that someone needs to deploy for 32-bit devices for personal usage.
If you only support 64-bit the 32-bit packages won't be involved.
@LandLu and what will happen if I have to built for iOS 9 to 13 in one app on Catalina? In this case the app may need 32-Bit binaries or not? Will this work after a upgrade to Catalina? Because as of right now, I include as many architectures as possible in my apps to cover as much devices as possible.
This is not an issue of mono, Mac OS and iOS. This is a cpu architecture issue.
iPhones all used arm64 since iPhone 5s. And iPhone 5 is a very old device I think there are few people using that.
So I think there's no need to consider the 32-bit. However, if you do want to develop a 32-bit project the mono supports that too. This is why a 32-bit package is included in it.
But this project can't be published to the App Store as Apple only allows to upload 64-bit application now.
As of right now, all my apps still are able to run on a iPhone 4S and iPad Gen 3 (both with iOS 9). Those devices require me to include a 32-Bit binary beside my 64-Bit binary in the uploaded package file. My MBP is currently with macOS 10.14 able to build both but is this still the case with 10.15? Is the 64-Bit mono able to create 32-Bit binary as well? In this case it makes no sense for me that there are so many 32-Bit applications still included and shipped with VS4Mac. Or are those mono-sgen apps on my device only from older releases because they are all in some sort of Xamarin.iOS Version XY folders.
Or the question in short: Is it still possible to build armv7 and arm64 architecture apps with macOS 10.15 and Xamarin? Because I still want to support anything from iPhone 4S and newer (or iPad Gen 3 and newer).
Yes, it can. I knew there were several version folders in the Xamarin.iOS framework but it only consumed the current folder.
My OS has updated to Catalina and I'm using the latest version of XCode and VS(Xamarin.iOS) now.
However, the arm-darwin-mono-sgen and simlauncher32-sgen are still in the folder. It means you could still build 32-bit project using current Xamarin.iOS.