Приложение Maui Blazor Hybrid не публикуется на iOS: ошибка Link.semaphore

Вопрос или проблема

Я новичок в мире MAUI и на протяжении нескольких дней пытаюсь опубликовать свое приложение для iOS. Оно публикуется без проблем для Windows и Android, но не для iOS.

Следуя некоторым постам, я обновил свою версию Visual Studio Community 2022 до последней версии (17.11.3) и использую VMWare Mac с Sonoma 14.6.1 и XCode 15.4. Они хорошо парсятся.

Я пытаюсь опубликовать с помощью PowerShell, так как прочитал, что интерфейс VS неудобный, используя следующую команду:

dotnet publish D:\Dev\MBHA\MBHA\MBHA.csproj -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:TargetPlatform=arm64 -p:RuntimeIdentifier=ios-arm64 -p:ServerAddress=192.168.211.128 -p:ServerUser=USERNAME -p:ServerPassword=PASSWORD -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/USERNAME/Library/Caches/Xamarin/XMA/SDKs/dotnet/

После многих проблем, которые я смог решить, я решил забыть о своем приложении и создал новый простой проект MAUI Blazor Hybrid в новой чистой Solutio.

Попытка опубликовать его вызывает те же проблемы, что заставляет меня думать, что что-то не так с моей средой разработки. Я искал здесь и на StackOverflow без успеха.

Код можно найти здесь: https://github.com/iFelinto/MAUI-Blazor-Hybrid-App

Ниже приведено сообщение, которое я получаю:

C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): error : MessagingException: The post for client anonymous52f11260a5 on topic xvs/build/1.14.0.6/execute-task/MBHA/45c47fd002fILLink has been cancelled [D:\Dev\MBHA\MBHA.csproj::TargetFramework=net8.0-ios]
C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): error : OperationCanceledException: The operation was canceled. [D:\Dev\MBHA\MBHA.csproj::TargetFramework=net8.0-ios]
C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): error : [D:\Dev\MBHA\MBHA.csproj::TargetFramework=net8.0-ios]
C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk.net8.0_17.5\17.5.8030\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(406,3): error MSB3371: The file “obj\Release\net8.0-ios\ios-arm64\linked\Link.semaphore” cannot be created. Could not find a part of the path ‘D:\Dev\MBHA\obj\Release\net8.0-ios\ios-arm64\linked\Link.semaphore’. [D:\Dev\MBHA\MBHA.csproj::TargetFramework=net8.0-ios]

Важно отметить, что это происходит только с версией Release. Debug запускается без проблем на эмуляторах на всех платформах.

Есть идеи, в чем может быть проблема?

Спасибо за вашу помощь!

Ответ или решение

Для решения проблемы с публикацией Maui Blazor Hybrid App на iOS, судя по указанной ошибке "Link.semaphore", я рекомендую выполнить следующие шаги:

  1. Проверка прав доступа: Убедитесь, что у вас есть необходимые права доступа к директориям и файлам, участвующим в процессе сборки. Так как ошибка указывает на невозможность создания файла в папке obj, убедитесь, что вы не работаете в защищенной директории или директории с ограниченным доступом.

  2. Очистка проекта: Попробуйте выполнить полную очистку проекта и сбросить все временные файлы:

    dotnet clean D:\Dev\MBHA\MBHA\MBHA.csproj
  3. Удаление папки bin и obj: На всякий случай удалите директории bin и obj из проекта вручную, чтобы избежать старых артефактов сборки, которые могут вызывать конфликт.

  4. Настройка XCode и эмулятора: Проверьте, не дают ли XCode и симулятор конфликты. Убедитесь, что все компоненты XCode и зависимости обновлены, а эмулятор настроен правильно.

  5. Обновление пакетов и SDK: Убедитесь, что вы используете последние версии всех необходимых пакетов. Выполните следующую команду:

    dotnet restore D:\Dev\MBHA\MBHA\MBHA.csproj
  6. Отладка конфигурации сборки: Попробуйте изменить конфигурацию сборки с Release на Debug и запустите процесс публикации, чтобы проверить, сохраняется ли ошибка. Если сборка в конфигурации Debug проходит успешно, это может указывать на проблему, специфичную для конфигурации Release.

  7. Проверка соединения с Mac: Убедитесь, что соединение между вашей Windows системой и Mac установлено корректно. Проверьте возможность удаленного подключения и доступ к папкам.

  8. Обновление Visual Studio: Поскольку вы уже используете последнюю версию Visual Studio Community 2022, рекомендуется ещё раз проверить наличие обновлений для всех компонентов, включая .NET MAUI и соответствующие плагины.

  9. Логирование ошибок: Попробуйте добавить дополнительное логирование во время сборки, чтобы получить больше информации об ошибках, возникающих на этапе публикации. Добавьте флаг -v diag к вашей команде:

    dotnet publish D:\Dev\MBHA\MBHA\MBHA.csproj -f net8.0-ios -c Release -p:ArchiveOnBuild=true -p:TargetPlatform=arm64 -p:RuntimeIdentifier=ios-arm64 -p:ServerAddress=192.168.211.128 -p:ServerUser=USERNAME -p:ServerPassword=PASSWORD -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/USERNAME/Library/Caches/Xamarin/XMA/SDKs/dotnet/ -v diag
  10. Обращение за поддержкой: Если вышеуказанные шаги не решили проблему, вы можете обратиться в поддержку Microsoft или на GitHub, предоставив всю собранную информацию об ошибках. Сообщество активно и может предложить более специфичные решения.

Следуя этим шагам, вы должны быть в состоянии выявить и устранить проблему, связанную с публикацией вашего приложения для iOS. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...