CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本
GitHub Demo 地址
CocoaPods
的安装教程可以看:
iOS安装CocoaPods详细过程
在swift
项目中使用CocoaPods
和oc
一样,先创建Podfile
文件,然后添加三方库
1、直接创建名字为Podfile
的文件,然后通过文件编辑器打开文件
2、在Podfile
文件中添加pod 三方库名称
,下面是我的demo中用的三方库
3、终端cd 到项目路径下,运行pod install
platform :ios, '9.0'
target 'JhSwiftDemo' do
use_frameworks!
# 屏蔽所有第三方框架警告
inhibit_all_warnings!
# source 'https://github.com/CocoaPods/Specs.git'
# -------------- 指令 --------------
# pod install --no-repo-update 跳过检查更新
# pod install
# pod install --repo-update 检查更新
# removing SDWebImage
# pod --version 查看版本
# sudo gem update cocoapods 更新升级CocoaPods
# sudo gem update --system 更新升级gem
# sudo gem install -n /usr/local/bin cocoapods 安装CocoaPods
# -------------- 指令 --------------
# -------------- Swift --------------
# 网络请求
pod 'Alamofire', '4.9.1'
pod 'Moya', '13.0.1'
pod 'ReachabilitySwift', '5.0.0'
# 模型转换,数据处理
pod 'SwiftyJSON', '5.0.1'
pod 'HandyJSON', '5.0.2'
# 自动布局
pod 'SnapKit', '4.2.0'
# 网络图片加载缓存
pod 'Kingfisher', '4.10.1'
pod 'IQKeyboardManagerSwift', '6.5.9'
pod 'Gifu', '3.3.1'
# 数据存储与数据安全
pod 'SQLite.swift', '0.13.2'
#pod 'RealmSwift'
pod 'SwiftyUserDefaults', '5.3.0'
#pod 'KeychainAccess'
pod 'Cache', '5.3.0'
pod 'CryptoSwift', '1.4.3'
# 时间转换
pod 'SwiftDate', '6.3.1'
# 标准库扩展
pod 'Dollar', '9.0.0'
# 扩展库
#pod 'SwifterSwift'
# 日志
#pod 'XCGLogger'
#pod 'Log'
# 异步、函数响应式编程
#pod 'PromiseKit'
#pod 'AsyncSwift'
#pod 'RxSwift', '6.5.0'
#pod 'RxCocoa', '6.5.0'
# 主题和颜色
pod 'SwiftTheme', '0.6.4' # 主题
#pod 'UIImageColors' # 从图像中获取最主要和最突出的颜色
#pod 'Hue'
#pod 'DynamicColor'
#pod 'UIColor_Hex_Swift'
# d框
pod 'SCLAlertView', '0.8'
pod 'SwiftMessages', '9.0.6'
#pod 'BulletinBoard'
#pod 'FloatingPanel' # 浮动界面
#pod 'XLActionController' # 底部菜单栏控件
# 加载框
pod 'Toast-Swift', '5.0.1'
#pod 'PKHUD'
#pod 'ProgressHUD'
#pod 'Toaster'
# pop
pod 'Popover', '1.3.0'
#pod 'PopupDialog'
#pod 'AMPopTip'
# 顶部
pod 'SwiftEntryKit', '2.0.0'
#pod 'NotificationBannerSwift'
# 加载动画
#pod 'NVActivityIndicatorView'
# 图片选择器
pod 'HXPHPicker', '1.0.8'
#pod 'ZLPhotoBrowser'
#pod 'YPImagePicker'
#pod 'BSImagePicker'
#pod 'ImagePicker'
# 图片浏览
pod 'Lantern', '1.1.2'
#pod 'JXPhotoBrowser'
#pod 'ImageViewer'
# 滑动面板
#pod 'JXSegmentedView'
#pod 'Panels'
# 轮播
pod 'FSPagerView', '0.8.3'
# 侧滑菜单
pod 'SideMenu', '5.0.1'
#pod 'SlideMenuControllerSwift'
pod 'ESTabBarController-swift', '2.8.0'
#pod 'RAMAnimatedTabBarController'
# 引导页
pod 'Instructions', '2.1.1'
#pod 'RazzleDazzle'
#pod 'ZLaunchAd'
# 二维码
pod 'EFQRCode', '6.2.1'
pod 'swiftScan', '1.2.1'
#pod 'WeScan'
# 图表 SwiftUICharts
pod 'AAInfographics', '6.0.0'
#pod 'AAInfographics', :git => 'https://github.com/AAChartModel/AAChartKit-Swift.git'
#pod 'Charts'
#pod 'SwiftCharts'
#pod 'SwiftChart' # 最后更新2018
#pod 'PNChartSwift',:git => 'https://github.com/kevinzhow/PNChart-Swift.git' # 最后更新2017
# 富文本
#pod 'SwiftyAttributes'
#pod 'Atributika'
#pod 'SwiftRichString'
#pod 'TextAttributes'
# 日历
pod 'JTAppleCalendar', '7.1.7'
#pod 'CVCalendar'
#pod 'HorizonCalendar'
#pod 'CalendarKit'
# 下拉刷新
pod 'ESPullToRefresh', '2.9.3'
#pod 'DGElasticPullToRefresh'
#pod 'PullToRefresher'
# UI
#pod 'Eureka' # 表单
#pod 'Former' # 表单
#pod 'FoldingCell' # 折叠cell
#pod 'SwipeCellKit' # 滑动cell
#pod 'Reusable' #cell
#pod 'ActiveLabel'
#pod 'LTMorphingLabel'
#pod 'MarqueeLabel'
#pod 'TextFieldEffects' # 浮动输入
#pod 'SkyFloatingLabelTextField' # 浮动输入
#pod 'RichTextView'
#pod 'NextGrowingTextView'
#pod 'PhoneNumberKit'
#pod 'Cosmos', '~> 23.0' # 星星评分
#pod 'RAMPaperSwitch'
#pod 'Koloda'
#pod 'JXMarqueeView' # 跑马灯
# 音视频
#pod 'BMPlayer'
#pod 'Player'
# web
#pod 'vapor'
#pod 'Swifter'
#pod 'SwiftSoup' # HTML解析
#pod 'Starscream' # WebSocket
# 其它
#pod 'URLNavigator' # 路由
#pod 'BluetoothKit' # 蓝牙
#pod 'Appz' # App跳转
#pod 'MonkeyKing' # 社会化分享
#pod 'Siren' # 版本检查
#pod 'Tiercel' # 资源下载
#pod 'R.swift' # 资源使用
#pod 'SwiftGen' # 资源管理
#pod 'SwiftLocation'
#pod 'SwiftOCR'
#pod 'OAuthSwift'
# -------------- OC --------------
pod 'AFNetworking', '4.0.1'
pod 'DZNEmptyDataSet','1.8.1'
pod 'MJExtension','3.4.0'
pod 'MJRefresh','3.7.2'
pod 'Masonry','1.1.0'
pod 'SVProgressHUD','2.2.5'
pod 'MBProgressHUD', '1.1.0'
pod 'LEEAlert','1.5.1'
pod 'BRPickerView','2.7.6'
# ios14适配 SDWebImage升级到至少5.8.3版本,防止图片不显示、黑屏
pod 'SDWebImage','5.12.1'
#pod 'IQKeyboardManager','6.5.9'
# 选择图片依赖HXPhotoPicker和SDWebImage,可以分开加或者使用: pod 'HXPhotoPicker/SDWebImage', '3.1.9'
#pod 'HXPhotoPicker'
#pod 'FDFullscreenPopGesture', '1.1' #全屏手势 拖进来了
#pod 'GKPhotoBrowser','2.2.1'
#pod 'PPBadgeView','2.1.0' #小红点
# 更改所有第三方框架 Target 版本
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
end
安装之前的文件结构
安装成功之后的文件结构
之后打开项目都点击[项目名称].xcworkspace
安装时报错,需要更新CocoaPods
更新命令
sudo gem update cocoapods 更新升级CocoaPods
关于 use_frameworks!
use_frameworks!和#use_frameworks!的区别、解决Swift项目中use_frameworks!冲突的问题
use_frameworks! -> static libraries 方式 -> .a
1、用cocoapods导入OC框架到swift项目(1)
swift
项目cocoapods 默认use_frameworks!
(2)OC
项目cocoapods 默认#use_frameworks!
2、用cocoapods导入swift框架到swift项目(1)#use_frameworks! 必须创建头文件,在头文件里面 #import “xxx.h”
(2)use_frameworks! 如果有头文件,在头文件里面 #import “xxx/xxx.h”,其它swift文件中用到不需要再import;如果没有头文件,则在每个需要用到的swift文件里 import xxx。
3、用cocoapods导入OC框架到OC项目(1)必须use_frameworks!
(2)不需要头文件,在需要用到框架的swift文件里 import xxx
(1)#use_frameworks! 在需要用到的文件里 #import “xxx.h”;也可以通过pch文件,用法类似swift中的头文件。
(2)use_frameworks! 与(1)类似,用法上没有区别。
总结:
(1)用swift项目考虑到会使用 OC 和 swift 两种第三方框架,所以Podfile中使用swift项目默认的 use_frameworks! 更为妥当,并且frameworks动态链接库具有一定的优势。
(2)可以建立一个Bridge头文件,用来import那些OC框架的.h文件:#import “xxx/xxx.h”。或者不建头文件,像swift框架一样,直接在需要用到的swift文件中import xxx。
解决Swift项目中use_frameworks!冲突的问题,详见:https://blog.csdn.net/feng2qing/article/details/73835805
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)