仅当iOS 11可用时才导入模块

时间:2018-04-11 14:00:29

标签: ios swift cocoapods

我想在我的项目中从CocoaPods导入一个模块,该模块的最小部署目标设置为iOS 9.0。

在我的Podfile中,我将特定框架的最低部署目标设置为iOS 11,如下所示:

ReadLock

这样我就可以 #CoreML platform :ios, '11.0' pod 'xxx', '1.0.0'

问题是当我在我的文件中导入它时,收到以下错误:

  

模块文件的最低部署目标是ios11.0 v11.0。

只有iOS 11可用时才能导入它?我尝试使用

pod install

if #available(iOS 11, *) { ... } ,但没有运气。

1 个答案:

答案 0 :(得分:0)

  1. Podfiles不支持Pod特定的部署目标。您可以像使用platform :ios, 'x.y'

  2. 一样为所有Pod和生成的聚合目标设置部署目标
  3. 您可以在Lib的Podspec中设置Pod特定的部署目标:spec.ios.deployment_target = '11.0' - >但这对你的情况没有帮助。

  4. 在Podfile(11.0)中使用比项目(9.0)更高的部署目标是没有意义的。这些值应始终相等。

  5. 解决方案:在您的Podfile中设置platform :ios, '9.0',并使用@available和#available有条件地导入/使用仅限11.0的Lib。您可能还需要在“与图书馆链接”下选择性地链接您的图书馆,请参阅Apple Doc

    如果这对您不起作用,请分享更多信息(完整的Podfile,Xcode和Cocoapods版本,Lib的Podspec)