博客> Unable to find a specification for `xxx` depended upon by `xxx`
Unable to find a specification for `xxx` depended upon by `xxx`
2018-11-14 15:40 评论:0 阅读:4103 easonwzs
ios cocoapods pod

最近将 Xcode 升级到了 Xcode8 ,结果在维护之前私有的 pod 时发生了依赖库错误。如下所示:

EasonWang-2:HXDBService EasonWang$ pod lib lint

 -> HXDBService (1.5)
    - WARN  | summary: The summary is not meaningful.
    - ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `AFNetworking (~> 3.1.0)` depended upon by `HXDBService`) during validation.
#   * Write the description between the DESC delimiters below.

[!] HXDBService did not pass validation, due to 1 error and 1 warning.
You can use the `--no-clean` option to inspect any issue.

OK,本着发现问题迎难而上的精神,经过一上午的Google发现也有人遇到了类似的问题,但是跟我这种情况还是不一样的。大多数都是在使用 cocoapods 安装第三方插件的时候报的错误,不过也从中收到了一些启发。

话不多说,解决思路如下:

1、首先当然是查看一下 cocoapods 的版本是不是最新的,因为 cocoapods 是 ruby 语言的,所以同时查看一下 ruby 是不是最新的:

如果不是最新的则: 更新 cocoapods 命令如下:

$ gem install cocoapods --pre
$ pod --version
1.1.0.beta.2

更新 ruby 命令如下:

$ rvm install ruby --head
$ rvm -v
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin>, Michal Papis <mpapis> [https://rvm.io/]

2、安装 Xcode7 (如果你还没删除,恭喜你)

3、更改 CocoaPods Environment

我们先来差看一下原本的 CocoaPods Environment

pod env
Stack
   CocoaPods : 1.0.0
        Ruby : ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
    RubyGems : 2.5.0
        Host : Mac OS X 10.11.6 (15G31)
       Xcode : 8.0 (8A218a)
         Git : git version 2.6.2
Ruby lib dir : /Applications/CocoaPods.app/Contents/Resources/bundle/lib
Repositories : HXSpec - https://git.oschina.net/xxx/HXSpec.git @ 3fd82e8b5b46bc1a1b2833f18a005e2f0c09000e
               master - https://github.com/CocoaPods/Specs.git @ 94e006ab05699487eb59508a2a580db119465622

从中可以看到 Xcode : 8.0 (8A218a) ,表示当前环境中使用的是最新版本的 Xcode8 我们需要切换回 Xcode 7

$ sudo xcode-select -switch /Applications/Xcode\ 7.3.app/Contents/Developer

再次查看 CocoaPods Environment

Stack

   CocoaPods : 1.0.0
        Ruby : ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
    RubyGems : 2.5.0
        Host : Mac OS X 10.11.6 (15G31)
       Xcode : 7.3 (7D175)
         Git : git version 2.6.2
Ruby lib dir : /Applications/CocoaPods.app/Contents/Resources/bundle/lib
Repositories : HXSpec - https://git.oschina.net/xxx/HXSpec.git @ 3fd82e8b5b46bc1a1b2833f18a005e2f0c09000e
               master - https://github.com/CocoaPods/Specs.git @ 94e006ab05699487eb59508a2a580db119465622

可以看到 Xcode : 7.3 (7D175) 说明我们切换成功了。

4、验证 podspec 文件:

$ pod lib lint --sources='https://git.oschina.net/xxx/HXSpec.git,https://github.com/CocoaPods/Specs.git' --use-libraries --allow-warnings

 -> HXDBService (1.5)

HXDBService passed validation

注:我们只说了如何解决问题,至于为什么 Xcode8 会导致这个问题,就交给大牛了。

收藏
1
sina weixin mail 回到顶部