Swift 模块最小部署目标捕获器

Swift 模块最小部署目标捕获器,swift,Swift,我的Swift应用程序需要支持iOS9,但现在我使用的模块需要10.0支持。。我无法再部署/构建该应用程序 Module file's minimum deployment target is ios10.0 v10.0 因为我将9.0定义为部署目标 这是因为Swift文件上有一个使用ModuleName。 我怎么能抓住这个?我已经编写了代码,说明该模块仅在iOS 10及更高版本上可用: @available(iOS 10, *) 但是仍然会出现错误,因为Swift文件顶部的使用。您没有提到

我的Swift应用程序需要支持iOS9,但现在我使用的模块需要10.0支持。。我无法再部署/构建该应用程序

Module file's minimum deployment target is ios10.0 v10.0
因为我将9.0定义为部署目标

这是因为Swift文件上有一个
使用ModuleName
。 我怎么能抓住这个?我已经编写了代码,说明该模块仅在iOS 10及更高版本上可用:

@available(iOS 10, *)

但是仍然会出现错误,因为Swift文件顶部的
使用

您没有提到如何导入正在使用的模块,因此我将讨论几种方法

  • 我假设您的项目中没有包含源代码, 否则你就不会有问题了
  • 我还假设您的意思是
    import
    ,您说
    use
  • 如果有需要10.0的原因,则必须使用
    @available(iOS 10,*)
    编辑代码以注释10.0方法并提供回退
如果您的项目中有一个单独的目标正在构建框架,那么只需进入该目标,然后在General>Deployment Info中将部署目标设置为9.0

如果您正在使用CoCoapod或其他依赖关系管理器,您仍然可以执行上述操作,但在重新生成时它将被清除。如果您使用的是cocoapods,则可以在您的podfile中使用安装后挂钩来完成上述操作:

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      if ['RevealingTableViewCell'].include? target.name
        target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
        end
      end
    end
  end
请再次注意,如果有充分的理由说明模块具有最低部署目标,那么这将无助于您


我不知道其他软件包经理的情况,但希望这能让你走上正轨。另外,请注意,iOS 9的使用数量是有限的,放弃对它的支持也可能是一种选择。

如果将模块设置为最低目标10.0,我想如果您的项目的最低目标是9.0,就没有办法使用它。如果模块是开源的,您可以将代码库包含在项目中进行编译,那么就不会有问题了。这真的是解决办法吗?因为当您尝试这样做时,代码始终会在您放在类顶部的部分失败
use ModeleName
——因为它仅适用于iOS10。这是在模块代码的某个地方定义的。Swift中没有使用
这样的东西。