Carthage: github 没有满足要求的可用版本(两个框架导入不同版本的Alamofire)
Carthage: No available version for github satisfies the requirement (two frameworks import Alamofire with different versions)
在我的 iOS 应用中,我尝试使用 Carthage 导入两个框架——这两个框架都依赖 Alamofire(但版本不同)。
当我 运行 carthage update --platform ios
我得到错误:
No available version for github "Alamofire/Alamofire" satisfies the requirement: == 4.7.1
在 iOS 应用程序的 Cartfile 中,我包含一个私有框架和 AlamofireImage:
git "ssh://git@<url>.com/<repo-name>.git" "<branch-name"
github "Alamofire/AlamofireImage" == 3.3.1
当我进行一些挖掘时,我看到 AlamofireImage 在 Cartfile 中有这个:
github "Alamofire/Alamofire" ~> 4.7
我的私人仓库有 github "Alamofire/Alamofire" == 4.7.1
注意:在我的私人仓库中,我的 .gitignore 文件中有 Carthage/Build
和 Carthage/Checkouts
,因为它们在 PR 评论中引起了一堆噪音。
Carthage 似乎正在尝试寻找 Alamofire 4.7.1,但由于某种原因失败了。到目前为止我发现的唯一修复是在我的 iOS 应用程序的 Cartfile 中包含 github "Alamofire/Alamofire" == 4.7.1
...但我不明白为什么 iOS 应用程序本身需要了解其依赖项依赖项。
谢谢!
iOS 本身与你在 carthage 添加的依赖无关。问题是您 (carthage) 用于每个项目的脚本。 Carthage使用每个项目配置(cartfile)并且它必须满足要求。
所以如果你想要同一个框架的不同版本(我根本不推荐它!它会浪费大量资源并大大延长应用程序的午餐时间!并且可能会导致副作用), 你应该将它们嵌入到每个项目中。
我最后做的是在我的私人框架仓库中使用 github "Alamofire/Alamofire" ~> 4.7
并在 iOS 应用程序中使用 github "Alamofire/Alamofire" "4.7.3"
。现在一切正常。
我也养成了删除Carthage缓存的习惯——删除里面的目录~/Library/Caches/org.carthage.CarthageKit/DerivedData
在我的 iOS 应用中,我尝试使用 Carthage 导入两个框架——这两个框架都依赖 Alamofire(但版本不同)。
当我 运行 carthage update --platform ios
我得到错误:
No available version for github "Alamofire/Alamofire" satisfies the requirement: == 4.7.1
在 iOS 应用程序的 Cartfile 中,我包含一个私有框架和 AlamofireImage:
git "ssh://git@<url>.com/<repo-name>.git" "<branch-name"
github "Alamofire/AlamofireImage" == 3.3.1
当我进行一些挖掘时,我看到 AlamofireImage 在 Cartfile 中有这个:
github "Alamofire/Alamofire" ~> 4.7
我的私人仓库有 github "Alamofire/Alamofire" == 4.7.1
注意:在我的私人仓库中,我的 .gitignore 文件中有 Carthage/Build
和 Carthage/Checkouts
,因为它们在 PR 评论中引起了一堆噪音。
Carthage 似乎正在尝试寻找 Alamofire 4.7.1,但由于某种原因失败了。到目前为止我发现的唯一修复是在我的 iOS 应用程序的 Cartfile 中包含 github "Alamofire/Alamofire" == 4.7.1
...但我不明白为什么 iOS 应用程序本身需要了解其依赖项依赖项。
谢谢!
iOS 本身与你在 carthage 添加的依赖无关。问题是您 (carthage) 用于每个项目的脚本。 Carthage使用每个项目配置(cartfile)并且它必须满足要求。
所以如果你想要同一个框架的不同版本(我根本不推荐它!它会浪费大量资源并大大延长应用程序的午餐时间!并且可能会导致副作用), 你应该将它们嵌入到每个项目中。
我最后做的是在我的私人框架仓库中使用 github "Alamofire/Alamofire" ~> 4.7
并在 iOS 应用程序中使用 github "Alamofire/Alamofire" "4.7.3"
。现在一切正常。
我也养成了删除Carthage缓存的习惯——删除里面的目录~/Library/Caches/org.carthage.CarthageKit/DerivedData