От новичка до гуру: Курсы программирования на CyberDuff

macOS: Должен ли я поставлять системные библиотеки, если мое приложение динамически ссылается на них?

В моем приложении используется пара сторонних динамических библиотек, которые я включаю в свой пакет приложения. Но как насчет системных библиотек, от которых зависит мой собственный код и сторонние библиотеки?

Примеры включают

  • /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  • /usr/lib/libSystem.B.dylib

Должен ли я объединять их и обновлять их ссылочные пути во всех двоичных файлах вызывающей стороны пакета приложения?

Если необходимо, должен ли я создавать двоичные файлы приложений для каждой версии macOS?

Я думаю, что я не должен заставлять своих пользователей устанавливать Xcode, но я не уверен, что эти системные фреймворки и динамические библиотеки связаны с ОС или установлены через Xcode...

10.11.2020

Ответы:


1

Системные библиотеки гарантированно работают в любой системе, которую поддерживает ваше приложение (и, естественно, они устанавливаются на любой Mac, поскольку сама система их использует). Поэтому нет, вам не нужно связывать эти библиотеки. Вместо этого вы должны тщательно решить, для какой версии ОС ваши коды подготовлены для поддержки той или иной версии библиотеки.

Когда часть кода необходимо обрабатывать по-разному для разных версий библиотеки во время выполнения, вы можете использовать такую ​​форму для синхронизации ваших кодов с текущей средой:

if (@available(macOS 10.14, *)) {
    //codes supporting any system since 10.14
} else {
    //codes supporting earlier systems
}
10.11.2020

2

Вы не должны объединять их. Все, что находится в /System или /usr/lib, является частью операционной системы, а не Xcode. Они не предназначены для копирования в другие системы.

10.11.2020
Новые материалы

Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

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

Игра в прятки с данными
Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

«Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

Все о кейсах: Camel, Snake, Kebab & Pascal
В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..