ios - XCFramework生成时如何处理swift动态框架中的可选依赖

标签 ios swift objective-c ios-frameworks xcframework

我有一个名为 ProductSDK 的 SDK。该SDK还有两个依赖sdk。

  1. CommonDependencySDK
  2. AdvanceDependencySDK

并尝试在ProductSDK中生成XCFramework。我的用例是,此 ProductSDK 中有 2 种类型的用例。一种是带有 CommonDependencySDK 的 ProductSDK,另一种是带有 CommonDependencySDK 和 AdvanceDependencySDK 的 ProductSDK。使用我的 ProductSDK 中的一些宏来处理这种情况。

但现在我的 ProductSDK 需要两个版本的 XCFramework。一种版本是使用 CommonDependencySDK 编译的 ProductSDK 源代码,另一种是使用 CommonDependencySDK 和 AdvanceDependencySDK 编译的 ProductSDK 源代码。

有人对此用例有任何想法吗?

或者处理可选依赖项而不是宏的替代方法是什么。

#if canImport(SDKName)
    // Some codes
#else
    // Some codes
#endif

最佳答案

XCFrameworks 应该通过合并不同平台的目标库二进制文件来取代通用框架。然而,在框架下包含依赖项方面没有任何变化。这种方法通常称为“伞”框架,是 considered a bad practice .

您应该做的是指示您的最终用户将他们的项目与您的框架所依赖的依赖项链接起来,并建议只需要一个依赖项,而另一个只是扩展功能。

对于如何实现可选链接框架的部分,已经回答了 herehere .

关于ios - XCFramework生成时如何处理swift动态框架中的可选依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74794691/

相关文章:

iOS 应用程序无法在设备上正确显示

ios - OpenGL photoshop 叠加混合模式

ios - 如何从 NSMutableArray (JSON) 获取数据

ios - 如何将 google place autocomplete api 结果限制为仅限纽约?

ios - UITableView 部分标题颜色行为不当

android - 使用自定义图标推送通知

ios - 无权从照片库中挑选照片

objective-c - cocoa QTMovieView keydown 不起作用

ios - Xamarin 绑定(bind)类别返回错误 : cannot declare instance members in a static class

ios - 获取唯一对象数组