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

Module file's minimum deployment target is ios10.0 v10.0

因为我把9.0定义为部署目标。
这是因为Swift文件顶部有一个use ModuleName文件。
我怎么能抓住这个?我已经编写了代码,该模块仅在iOS 10及更高版本上可用:
@available(iOS 10, *)

但是仍然会因为swift文件顶部的use而得到错误。

最佳答案

您没有提到如何导入正在使用的模块,所以我将讨论几种方法。
我假设您的项目中没有包含源代码,
否则你就不会有问题了。
我也假设你的意思是“CC”,你说的是“CC”。
如果有需要10.0的原因,则必须编辑代码以使用import注释10.0方法并提供回退
如果您的项目中有一个单独的目标正在构建框架,那么只需进入该目标,并在一般情况下>部署信息中,将部署目标设置为9.0。
如果您使用的是cocoapods或其他依赖关系管理器,您仍然可以执行上述操作,但在重新生成时会将其清除。如果您使用的是cocoapods,则可以在pod文件中使用安装后挂钩来完成上述操作:

  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

请再次注意,如果模块具有最低部署目标的充分理由,这将不会对您有所帮助。
我不知道其他的软件包经理,但希望这会让你走上正轨。另外,请注意,IOS9的使用率是falling并且放弃对它的支持可能也是一个选项。

关于swift - 模块最小部署目标捕获器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47264471/

10-12 00:15
查看更多