Обновить

Комментарии 15

Касаемо проверки в 32- и 64-битном процессах – проверял только на Windows, не уверен, как проверить это на macOS.

Актуальные маки 64-битные.

Ага, я как раз не был уверен, существуют ли нынче macOS 32-битные. Мне, увы, проверять приходится только в виртуалке :)

Спасибо за информацию!

Думаю, что для iOS файл dylib спокойно подойдёт (или нет?),

Ага, я как раз не был уверен, существуют ли нынче macOS 32-битные.

а вот чисто теоретически 32 битный бинарь может понадобиться для поддержки 5 айфона. Но по факту это уже давно хлам и никто не поддерживает ios10

отвечу сам себе. Сегодня на глаза попала дока https://developer.apple.com/documentation/apple-silicon/addressing-architectural-differences-in-your-macos-code

Update C++ Code

The C++ ABI for Apple silicon matches the ABI for iOS devices, and not the ABI for Intel-based Mac computers. For information about the ABI, see iOS ABI Function Call Guide.

Полезно, спасибо! Буду иметь в виду. Но в целом, выходит, если код не сильно сложный, используются стандартные int, char и иже с ними, то проблем быть не должно, и 64-битная сборка и на ARM64 будет работать?

ага, а вот 64 бита бывают разные - x86_64 и arm64

спасибо за статью, с большим удивлением узнал что существует NuGet и для mac. а им кто-то пользуется?

в яблочном мире всё же больше используют cocoapods и carthage. В последнее время рекомендованные способы - это xcframework и spm.

Ну MS в последние годы большое внимание уделяет работе .NET на разных операционных системах и стремится унифицировать UX разработчиков. Так что есть Visual Studio for Mac, в котором можно открыть обычный .NET солюшн, поставить пакеты NuGet и всё здорово работает.

Мне, как человеку, привыкшему пользоваться NuGet на Windows, очень комфортно было проверять изложенное в статье решение на macOS, используя NuGet :)
Nuget появился раньше чем cocoapods и carthage
НЛО прилетело и опубликовало эту надпись здесь
Если вы про папки вида runtime/… в пакете, то работать это будет только для .NET Core/.NET 5. Мне же важна работа и в .NET Framework тоже. Собственно, в статье упомянул про важность данного сценария для меня.

Вы можете использовать сразу оба подхода: MSBuild-скрипты для .NET Framework и директории runtime для .NET Core/.NET 5.

Не так давно я описывал, как это сделать в своих рекомендациях по улучшению NuGet-пакетов библиотеки Microsoft ClearScript.

Да, видел. Очень интересно, спасибо! У меня, правда, вопрос возник: а в чём плюсы гибридного подхода? Почему нельзя оставить только вариант с .targets/.props файлом, как наиболее универсальный?

Механизм на основе директорий runtime более современный и ориентирован на развертывание в облаках. Например, если использовать данный подход, то при обновлении нативных сборок никогда не придется производить принудительную перезагрузку веб-сайта или веб-сервера.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации