-
Notifications
You must be signed in to change notification settings - Fork 515
Known issues in .NET8
This document lists known issues in the SDKs.
Due to a problem when authoring the packs for the AOT compiler, the AOT compiler is incorrectly not marked as an executable. This means the build will fail whenever the AOT compiler is executed.
The workaround is to manually make the AOT compiler (and other related tools) executable:
$ sudo chmod +x /usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.*.Cross.**/8.0.0-preview.1.*/tools/mono-aot-cross
$ sudo chmod +x /usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.*.Cross.**/8.0.0-preview.1.*/tools/opt
$ sudo chmod +x /usr/local/share/dotnet/packs/Microsoft.NETCore.App.Runtime.AOT.*.Cross.**/8.0.0-preview.1.*/tools/llc
References:
- https://github.com/xamarin/xamarin-macios/issues/17616
- https://github.com/dotnet/runtime/issues/82201
- Use the following command to get a list of all the simulators:
$ /Applications/Xcode.app/Contents/Developer/usr/bin/simctl list
-
Choose one, and copy the corresponding UDID.
-
Set the
_DeviceName
property like this to select the simulator:
dotnet build -t:Run -p:_DeviceName=:v2:udid=<UDID>
Note that a simulator runtime identifier must be used (either set in the project file, or passed to the command above like this: /p:RuntimeIdentifier=iossimulator-x64
).
-
Open Xcode, then the menu
Window -> Devices and Simulators
. -
Choose a device on the left, and copy the
Identifier
from the device info section. -
Set the
_DeviceName
property like this to select the device:
dotnet build -t:Run -p:_DeviceName=<IDENTIFIER>
Note that a device runtime identifier must be used (either set in the project file, or passed to the command above like this: /p:RuntimeIdentifier=ios-arm64
).
Just dotnet run
should work just fine.
If something goes wrong (the app crashes, etc.), it's often useful to see stdout and stderr (Console.Out / Console.Error) from the app (this can even be useful as a debugging mechanism in certain cases). In order to see this output, it's necessary to execute the actual macOS executable directly from the terminal. The executable can be found inside the Contents/MacOS
directory of the app, which can be found in the output directory.
An example path for a Mac Catalyst app built for x86_64 (relative to the project directory):
$ ./bin/Debug/net6.0-maccatalyst/maccatalyst-x64/MySimpleApp.app/Contents/MacOS/MySimpleApp
[output]
If the app is a universal app (built for both x64
and arm64
), the path to the app won't contain the runtime identifier:
$ ./bin/Debug/net6.0-maccatalyst/MySimpleApp.app/Contents/MacOS/MySimpleApp
[output]
Ref: https://github.com/dotnet/xamarin/issues/26.
Mac Catalyst app signed with a provisioning profile with configuration "Mac Catalyst" crashes at launch.
A Mac Catalyst app with entitlements and signed with a macOS provisioning profile with configuration "Mac Catalyst" crashes at launch with "Security policy does not allow @ path expansion".
There are two known workarounds:
-
Add the following to the project file:
<PropertyGroup> <_LibMonoLinkMode>Static</_LibMonoLinkMode> <_LibXamarinLinkMode>Static</_LibXamarinLinkMode> </PropertyGroup>
Ref: https://github.com/xamarin/xamarin-macios/issues/14686#issuecomment-1106418177
-
Use a provisioning profile with configuration "Mac" instead of "Mac Catalyst"
See: https://github.com/xamarin/xamarin-macios/issues/14686#issuecomment-1109808007
Ref: https://github.com/xamarin/xamarin-macios/issues/14686
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status