解决:Compiling for iOS 9, but module Kingfisher...
in 技术 with 0 comment

解决:Compiling for iOS 9, but module Kingfisher...

in 技术 with 0 comment

前言

如果你是从 iOS 9 升级到 iOS 10,那么有可能你就会遇到下面的问题:

Compiling for iOS 9.0, but module 'Kingfisher' has a minimum deployment target of iOS 10.0

检查

为了确保问题得到解决,你得先检查下列列表项,并确保正确:

  1. TARGETS 包含的每个 target,根据路径 General -> Deployment Target,设置为 10.0;
  2. PROJECT 下的项目,根据路径 Info -> Deployment Target -> iOS Deployment Target,设置为 10.0;
  3. 找到 Pods 工程下的 Podfile,修改为 platform :ios, '10.0'。然后命令行执行 pod 更新。

    pod update

问题

如果编译通过,那么恭喜你,下面的内容就不需要看了........

如果编译报错,那么你需要在访达找到当前工程目录,用文本编辑器打开 Podfile.lock 文件,查找 Kingfisher 关键字,找到两项关键信息:

  1. Kingfisher 的版本号(当前最新 Kingfisher (5.7.0))
  2. 依赖 Kingfisher 的第三方库名字,然后通过依赖库的名字继续在当前文件查找到它在 SPEC REPOS: 下的地址

Kingfisher @ Github ,我们能看到最低版本要求是 iOS 10.0+ 了。如果你 Podfile 里 Kingfisher 的版本号是 4.x 的话,那么建议你先更新到最新版本。

如果你需要继续兼容 iOS 9,则可以保持 Kingfisher 在 4.x 的版本。

解决

关键点,用浏览器打开上述第 2 点找到的地址,找到 <依赖库名称>.podspec 文件,查找 s.ios.deployment_target 配置。如果值不是 10.0,则需要修改。

先本地克隆下来,然后修改后提交。更新依赖库版本号,打 tag,验证依赖库,推到索引库。这些操作就不细说了。

当然前提是你先确认你有这个依赖库的 Git 的权限

最后

在主工程更新修改过的依赖库即可。

pod update <依赖库名称>
Responses