使用迦太基的4个技巧
我已经使用Carthage作为我的依赖项管理器大约6个月了,这里有一些我已经学到的技巧。
如《迦太基安装指南》中所示,要从组中更新特定存储库,请使用以下命令:
迦太基更新 --platform ios
很好,没问题-但是该存储库名称的格式是什么? 查看此示例Cartfile
。 您能为下面的每个依赖关系猜测正确的存储库名称吗?
github“ swift / Sugar”“ e081f48892c1234dcgujk5a61892e5088fc544ff”
github上的“ airbnb / lottie-ios” == 1.5.2
github“ moretap / PrettyBorders”“大师”
git“
git@git.nasa.com:SeanBerry / launch-ios.git“ == 1.2.3
正确的格式是文件名的最后一部分,不包括“ .git”后缀。 因此,以上分别是Sugar
, lottie-ios
, PrettyBorders
和launch-ios
。
如果您使用自己的SDK,则可能是将实验性更改推向实验性分支:
git“ git@git.company.com/test.git”“ 86753098675309abcdefg”
有时迦太基会找您一个错误,找不到您的提交。 发生了什么? 作为高级开发人员,当出现问题时,我的第一个直觉是指责自己并质疑我的所有假设。 在这种情况下,这是浪费几个小时的好方法。 事实证明,缓存有时不更新(正如2015年的报道)。 清除它,迦太基将被迫重建对您的依赖的了解:
rm -rf〜/ Library / Caches / org.carthage.CarthageKit
将迦太基与源代码管理一起使用时,必须决定是否签入Build
文件夹。 没有正确的答案。 如果您将其签入,则使用您的项目的人可以在不运行carthage bootstrap
程序的情况下拉动并运行您的应用carthage bootstrap
-但您将增加回购的规模。 (Github的Swift默认.gitignore包括Carthage / Build。)
说您签入它,因为您正在使用CI,并且构建服务器需要这些文件。 几周后,苹果发布了新版本的Xcode和Swift。 但是负责SDK的同事尚未更新! 当您尝试使用它们的依赖关系时,您会在Xcode中看到如下错误:
使用Swift 4.0编译的模块无法在Swift 4.0.2中导入
Xcode.app使用的Swift版本可能与Xcode命令行工具使用的版本不同。 要检查Carthage使用什么版本来建立依赖关系,请进入Xcode-> Preferences-> Locations
确保将其设置为正确的版本,然后运行:
carthage update coworker-repo --platform ios
依赖关系会很好(假设新版本的Swift当然没有破坏它)。
如果您不检入/ Build文件夹并要求同事通过Carthage安装依赖项,他们可能会使用carthage update
或carthage bootstrap
当然,他们可以查看您项目的文档并按照其中的说明进行操作,但是假设有人决定直接进入。
update
将查看您的Cartfile
并获取满足规范的所有内容的最新版本,例如,如果您指定master
,它将去查看新的master提交是什么并将其写入Cartfile.resolved.
bootstrap
将仅查看Cartfile.resolved
并获取那些特定的提交。
如果每个人都不在同一页面上,这可能会令人头疼。 要完全避免这种情况,请标记特定的发行版或提交,而不是分支。
github“ Quick / Nimble” == 7.0.3#不是“ master”
警告 :如果不使用Cartfile
~>
,将会错过增量更新。 最终,您必须找出最适合您的项目的项目。
肖恩(Sean)在 Livefront 工作, 几乎每天都 在 使用迦太基。