如何编译与 UIKit 一起使用的第 3 方库 For Mac/Catalyst?

How to compile a 3rd party library to be used with UIKit For Mac/Catalyst?

如果您尝试在 iOS13 项目中使用第 3 方库(使用 make 或 cmake 编译)并打开 "UIKit For Mac" 选项,Xcode 将不满意图书馆。它会抱怨所提供的库是为错误的架构编译的(如果你将它指向 iphoneos 版本)。或者,它会抱怨它是为错误的平台编译的(如果你将它指向模拟器或 Mac 版本)。我需要在 Makefile 中指定哪些设置才能使 Xcode 接受 "UIKit For Mac" 选项下的库?

好吧,经过一段时间的挖掘,我发现如果你为 clang 提供以下目标(在调用 configure 之前设置 CFLAGS 变量),它会编译正确的版本库(注意 -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"