Xcode macOS:如果我的应用程序动态链接到系统库,我应该发布系统库吗?
我的应用程序使用了两个第三方动态库,我将其包含在我的应用程序包中。但是我自己的代码和第三方LIB所依赖的系统LIB呢 例子包括 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /usr/lib/libSystem.B.dylib 我是否应该捆绑这些应用程序并在应用程序包的所有调用程序二进制文件中更新它们的引用路径 如果必须,我是否应该为每个macOS版本创建应用程序二进制文件Xcode macOS:如果我的应用程序动态链接到系统库,我应该发布系统库吗?,xcode,macos,linker,release,Xcode,Macos,Linker,Release,我的应用程序使用了两个第三方动态库,我将其包含在我的应用程序包中。但是我自己的代码和第三方LIB所依赖的系统LIB呢 例子包括 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /usr/lib/libSystem.B.dylib 我是否应该捆绑这些应用程序并在应用程序包的所有调用程序二进制文件中更新它们的引用路径 如果必须,我是否应该为每个macOS版本创建应用程序二进制文件 我的想法是,
我的想法是,我不应该强迫我的用户安装Xcode,但我不确定这些系统框架和动态lib是否与操作系统捆绑在一起,或者是通过Xcode安装的…系统lib保证可以在应用程序支持的任何系统上运行,当然也可以安装在任何Mac上,因为系统本身使用它们。因此,不需要捆绑这些LIB。相反,您必须仔细决定您的代码准备从哪个版本的操作系统支持这个或那个版本的库 当一段代码在运行时需要针对不同版本的库进行不同的处理时,您可以使用以下表单将代码与当前环境同步:
if (@available(macOS 10.14, *)) {
//codes supporting any system since 10.14
} else {
//codes supporting earlier systems
}
系统库保证可以在应用程序支持的任何系统上运行,并且由于系统本身使用它们,因此它们自然会安装在任何Mac上。因此,不需要捆绑这些LIB。相反,您必须仔细决定您的代码准备从哪个版本的操作系统支持这个或那个版本的库 当一段代码在运行时需要针对不同版本的库进行不同的处理时,您可以使用以下表单将代码与当前环境同步:
if (@available(macOS 10.14, *)) {
//codes supporting any system since 10.14
} else {
//codes supporting earlier systems
}
你不能把这些捆起来。/System或/usr/lib中的任何内容都是操作系统的一部分,而不是Xcode。它们不打算复制到其他系统。您不能将它们捆绑在一起。/System或/usr/lib中的任何内容都是操作系统的一部分,而不是Xcode。它们不打算复制到其他系统