Как скомпилировать стороннюю библиотеку для использования с UIKit для Mac / Catalyst? - PullRequest
2 голосов
/ 07 июня 2019

Если вы попытаетесь использовать стороннюю библиотеку (скомпилированную с использованием make или cmake) в своем проекте iOS 13 и включите опцию «UIKit For Mac», Xcode будет недоволен этой библиотекой. Он будет жаловаться, что предоставленная библиотека скомпилирована для неправильной архитектуры (если вы укажете на версию iphoneos). Или он будет жаловаться, что он скомпилирован для неправильной платформы (если вы указываете на симулятор или версию для Mac). Какие настройки мне нужно указать в Makefile, чтобы Xcode мог принимать библиотеку под опцией «UIKit For Mac»?

1 Ответ

2 голосов
/ 07 июня 2019

Что ж, покопавшись некоторое время, я обнаружил, что если вы поставите clang следующую цель (установите переменную CFLAGS перед вызовом configure), она скомпилирует правильную версию библиотеки (обратите внимание на -macabi суффикс):

-target x86_64-apple-ios${MIN_IOS_VERSION}-macabi

Я также добавляю флаг минимальной версии os к версии macOS:

-mmacosx-version-min=${MIN_OSX_VERSION}

Здесь MIN_IOS_VERSION="13.0" и MIN_OSX_VERSION="10.15"

...