Podfile指定InstaCart TrueTime 5.1.0版本找不到specification如何解决
问题解答
判断正确性说明
你的判断完全正确。CocoaPods对源仓库的目录结构有强制规范要求,必须按照Specs/[库名首字母]/[库名]/[版本号]/[库名].podspec的层级存放对应版本的podspec文件,直接将podspec放在仓库根目录的Git仓库无法作为合法的Pod源被识别,因此单独添加仓库地址作为source时,CocoaPods找不到对应spec就会抛出找不到依赖的报错。
解决方法
分两种使用场景提供对应方案:
场景1:主项目Podfile直接依赖TrueTime
不需要额外配置source,直接在Podfile中指定依赖的Git地址和对应版本tag即可,写法如下:
pod 'TrueTime', :git => 'https://github.com/instacart/TrueTime.swift.git', :tag => '5.1.0'
场景2:自定义Pod的podspec中需要依赖TrueTime
有两种可选方案:
- 方案一(适用于CocoaPods 1.7及以上版本):直接在podspec的dependency字段中指定源与tag,写法如下:
s.dependency "TrueTime", :git => 'https://github.com/instacart/TrueTime.swift.git', :tag => '5.1.0'
- 方案二(兼容所有CocoaPods版本):自行将TrueTime 5.1.0的podspec按照规范的目录结构,上传到自己的私有Specs仓库,之后在Podfile顶部依次添加自己的私有源地址和官方CocoaPods源地址即可正常依赖。
修改配置后如果仍出现报错,可先执行pod cache clean TrueTime --all清除本地缓存后,再重新执行pod install。
内容的提问来源于stack exchange,提问作者ScottyB
相关产品推荐
相关产品推荐

