前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Carthage使用

Carthage使用

作者头像
莫空9081
发布2023-10-16 09:55:56
2310
发布2023-10-16 09:55:56
举报
文章被收录于专栏:iOS 备忘录

背景

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

使用

安装

使用brew安装,简单方便

代码语言:javascript
复制
brew install carthage

使用

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

代码语言:javascript
复制
touch Cartfile

然后打开Cartfile

代码语言:javascript
复制
open Cartfile -a Xcode

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

代码语言:javascript
复制

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

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

代码语言:javascript
复制

# 会编译所有平台的,比如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的也不校验,如下:

代码语言:javascript
复制

excluded:
  - Pods
  - Carthage

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

代码语言:javascript
复制
carthage bootstrap

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 使用
    • 安装
      • 使用
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档