Не удается запустить собственное приложение iOS, созданное с помощью .net 6.0: libhostpolicy.дылиб отсутствует

#c# #.net #xamarin.ios #.net-6.0

Вопрос:

Я пытаюсь создать и запустить собственное приложение iOS с использованием .net 6.0.100 (RC1). Я не использую МАУИ. Я использую как Visual Studio 2022 для Mac, так и Jetbrains’ Rider. Приложение является приложением по умолчанию. .csproj Файл выглядит так:

 <Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0-ios14.0</TargetFramework>
    <SupportedOSPlatformVersion>14.0</SupportedOSPlatformVersion>
    <RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
    <AssemblyName>Application.iOS</AssemblyName>
    <RootNamespace>Application.iOS</RootNamespace>
    <LangVersion>default</LangVersion>
    <Nullable>enable</Nullable>
    <OutputType>Exe</OutputType>
  </PropertyGroup>
</Project>
 

Я могу успешно создать приложение, но не могу его запустить:

 Cannot use file stream for [/Users/xxx/Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/Application.iOS.deps.json]: No such file or directory
A fatal error was encountered. The library 'libhostpolicy.dylib' required to execute the application was not found in '/Users/xxx/Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/'.
Failed to run as a self-contained app.
  - The application was run as a self-contained app because '/Users/xxx/Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/Application.iOS.runtimeconfig.json' did not specify a framework.
  - If this should be a framework-dependent app, specify the appropriate framework in '/Users/xxx/Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/Application.iOS.runtimeconfig.json'.
 

Вот содержимое файла Application.iOS.runtimeconfig.json :

 {
  "runtimeOptions": {
    "tfm": "net6.0",
    "includedFrameworks": [
      {
        "name": "Microsoft.NETCore.App",
        "version": "6.0.0-rc.1.21451.13"
      },
      {
        "name": "Microsoft.iOS",
        "version": "**FromWorkload**"
      }
    ],
    "configProperties": {
      "System.ComponentModel.TypeConverter.EnableUnsafeBinaryFormatterInDesigntimeLicenseContextSerialization": false,
      "System.Diagnostics.Debugger.IsSupported": true,
      "System.Diagnostics.Tracing.EventSource.IsSupported": false,
      "System.Globalization.Invariant": false,
      "System.Net.Http.EnableActivityPropagation": false,
      "System.Net.Http.UseNativeHttpHandler": true,
      "System.Resources.ResourceManager.AllowCustomResourceTypes": false,
      "System.Resources.UseSystemResourceKeys": false,
      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
      "System.StartupHookProvider.IsSupported": false,
      "System.Threading.Thread.EnableAutoreleasePool": true,
      "System.Text.Encoding.EnableUnsafeUTF7Encoding": false
    }
  }
}
 

Я знаю, что libhostpolicy.dylib файл существует в dotnet папке установки. Я скопировал файл и вместо этого получил эту ошибку:

 /usr/local/share/dotnet/dotnet /Users/***/Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/Application.iOS.dll
Cannot use file stream for [/Users/***Application/src/Application.iOS/bin/iPhoneSimulator/Debug/net6.0-ios14.0/iossimulator-x64/Application.iOS.deps.json]: No such file or directory
Failed to create CoreCLR, HRESULT: 0x80004005
 

Вопрос

Как я могу запустить встроенное приложение iOS для сборки / запуска на .net 6?

Ответ №1:

Райдер еще не готов запустить приложение iOS на .net6. При этом приложение можно запустить, выполнив следующую команду:

 dotnet build -t:run