Ios #如果canImport()不能与CocoaPods一起正常工作。严重问题
我们遇到了一个非常奇怪的问题,这在我们的生产代码中造成了问题。基本上,我们已经创建了一个框架,它几乎没有单独的可选框架。现在,我们使用以下逻辑访问框架中的代码:Ios #如果canImport()不能与CocoaPods一起正常工作。严重问题,ios,swift,cocoapods,ios-frameworks,podspec,Ios,Swift,Cocoapods,Ios Frameworks,Podspec,我们遇到了一个非常奇怪的问题,这在我们的生产代码中造成了问题。基本上,我们已经创建了一个框架,它几乎没有单独的可选框架。现在,我们使用以下逻辑访问框架中的代码: #if canImport(optionalFramework) firstMethodFromTheFramework() secondMethodFromTheFramework() #endif 问题是,然后我们用cocoapod分发我们的主框架,即使客户端集成了额外的子类,我们的代码也不能引用额外的框架。因此它不导入框架,也不
#if canImport(optionalFramework)
firstMethodFromTheFramework()
secondMethodFromTheFramework()
#endif
问题是,然后我们用cocoapod分发我们的主框架,即使客户端集成了额外的子类,我们的代码也不能引用额外的框架。因此它不导入框架,也不调用可选方法。因此,它不能完全工作,并产生了大量的问题。。。我们根本不明白,为什么IOS开发不允许这样的功能和架构?
更好的做法是将框架模块化,而不是创建巨大的框架,这只会增加规模和复杂性
如果客户机集成了可选框架,那么可能还有其他方法从可选框架访问框架
我们真的对整个情况有点不确定,这对我们的整个项目至关重要。
我将再次澄清:我们的主框架根本不包括可选框架。它只使用#if canImport()标志。客户端应负责添加POD,然后framework应自动开始执行代码我遇到了相同的问题,并通过以下方法解决了此问题: 在您的框架中安装可选的pod——假设它是Alamofire—(您将在最后删除),这样您就可以在这两个文件中找到路径
希望解决您的问题我也有同样的问题,它通过以下方式为我解决: 在您的框架中安装可选的pod——假设它是Alamofire—(您将在最后删除),这样您就可以在这两个文件中找到路径
希望能解决你的问题你试过这个吗?我没有试过!我会再试一次。不过,我现在是否应该在我们的主框架Pod文件中包含这个可选Pod?然后,我应该将这个可选框架指定为弱框架,对吗?:)@SachinVas不工作。因为这个原因,它甚至没有通过验证。你能上传验证失败的日志吗?你试过吗?我没有试过!我会再试一次。不过,我现在是否应该在我们的主框架Pod文件中包含这个可选Pod?然后,我应该将这个可选框架指定为弱框架,对吗?:)@SachinVas不工作。因为这个原因,它甚至没有通过验证。你能上传验证失败的日志吗?