今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

Carthage使用

背景#

之前一直用CocoaPods,这次做编译时间优化时,把某些 Pod 依赖的库改为了Carthage依赖的,这里记录一下Carthage的使用。

使用#

安装#

使用brew安装,简单方便

brew install carthage

使用#

在项目所在文件夹,即.xcodeproj 所在的文件夹下,创建Cartfile

touch Cartfile

然后打开 Cartfile

open Cartfile -a Xcode

添加要依赖的第三方库,注意依赖版本的指定,指定版本和指定范围的写法,如下:


github "krzyzanowskim/CryptoSwift" ~> 1.4.0
github "evgenyneu/keychain-swift" ~> 19.0
github "ibireme/YYKit"
github "ReactiveX/RxSwift" "6.5.0"
github "onevcat/Kingfisher" "version6-xcode13"
github "alibaba/HandyJSON" ~> 5.0.2
github "https://github.com/antitypical/Result.git"
github "pkluz/PKHUD" ~> 5.0
github "Moya/Moya" ~> 15.0

需要注意的是,Carthaget中有些 SDK 编译出来的是全部的,可以根据实际需要导入项目中,比如RxSwiftMoya

最后一步,安装,注意下面几个方法的不同


# 会编译所有平台的,比如tvOS、iOS、macOS等
carthage update --use-xcframeworks

# 只编译iOS的库 
Carthage update --platform ios --use-xcframeworks

# 只编译iOS的库,且如果编译的缓存存在的话,不重复编译
Carthage update --platform ios --use-xcframeworks --cache-builds

# 参考https://stackoverflow.com/questions/41442601/whats-the-purpose-of-no-use-binaries-in-carthage
carthage build --platform ios --use-xcframeworks --no-use-binaries

编译后生成的xcframework,导入到项目中,在项目 General 下的Frameworks, Libraries, and Embeded Content中需要切换勾选Embeded & Sign,如下:

示意图

如果使用了SwiftLint,编译后可能报错,在.swiftlint.yml中添加Carthage的也不校验,如下:


excluded:
  - Pods
  - Carthage

最后,如果 Carchage 项目提交后,其他人拉取了这个项目,需要运行下面的命令,来同步 carthage frameworks:

carthage bootstrap

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。