乐虎游戏|乐虎国际登录|欢迎你

CocoaPods 系列(三)—— 使用

日期:2020-04-20编辑作者:计算机资讯

后天给我们狼吞虎餐上面几点内容。

类型组件化、平台化是技能集团的一道目的,越来越多的技能公司体贴使用pod管理第三方库以致民用组件,一方面使项目构造尤其清晰,一方面现存的工具Cocoapods提供了近乎完美的缓慢解决方案。这里大家来研讨一下如何在Xcode 工程中集成Cocoapods,这里提供入门级其余归并和进级集成方式。

开首以前请先做两件职业:

iOS相机权限·细节点。

  1. Cocoapods官网:
  2. Cocoapods在github上的支出货仓:
  3. Cocoapods 错误汇总
  4. Cocoapods援助分界面
  5. Cocoapods入门参考文书档案:
  6. 始建私有pod参照他事他说加以侦查文书档案:
  7. 私有Pods:
  8. Tmall本事结构:
  • 索求 Specs 仓库可能 cocoapods.org 确认想要安装的仓库储存在;
  • Computer上曾经设置 CocoaPods。

什么高贵地创建生成私有Pod。

Cocoapods简介

Cocoapods是OS X和iOS下的三个第三方库管理工科具,而且支持Objective-C和swifit语言。通过Cocoapods为品种拉长称为"Pods"的正视库(这几个库必需是Cocoapods所支撑的),况兼轻易完毕第三方库的版本管理。

引入Cocoapods的意义:

Cocoapods在引进第三方库时自动为我们完结各个配置,富含布署编写翻译阶段、连接器选项、以致是ARC境况下的-fno-objc-arc配置等

Cocoapods能够很便利的检索第三方库,能够高速方便的寻觅到优质的第三方库甚至它们的各样新闻。

Cocoapods 官方网站:

Cocoapods整个项目托管在github上, 全数的Pods重视库也都重视github

创制 Podfile 文件,加多依赖:

OC中 NSInteger 如何文雅地改变到 NSNumber 。

Cocoapods发展背景

Cocoapods创设于二零一二年,前段时间Cocoapods团队有贰九位民代表大会旨开拓职员以致多达5000多个开源项目。Cocoapods的留存为代码分发提供了足够便利的建设方案。

target 'MyApp' do pod 'AFNetworking', '~> 3.0' pod 'FBSDKCoreKit', '~> 4.9'end

Xcode工程 gitignore配置。

Cocoapods宗旨组件

Cocoapods是用Ruby写的,所以在装置时一时要更新ruby源。Cocoapods在拆解解析进度中最根本的多少个包的路径分别是:CocoaPods/CocoaPods、 CocoaPods/Core和 CocoaPods/Xcodeproj,在那之中Core提供了CocoaPods相关文件,主就算podfile和podspecs。

podfile:该公文用于配置项目所需的第三方库,能够被中度订制。

podspec:该文件陈说二个库怎么着被投入到工程文件中。.podspec文件能够标记该第三方库所要求的源码文件、正视库、编写翻译选项,以至其余的第三方库所需的安排。

over.

  • 在工程目录下实践 pod install
  • 开荒并编写翻译 MyApp.xcworkspace

加上或更新 gitignore配置文件后,如何文雅的一键更新在此以前的野史文件。

上面大家来三个三个说。

——————「只要须求相机权限,那么无论是否同意/必要录有声录像,均须求展开迈克风权限,不然相机分界面会打不开」——————本周付出自定义相机模块,付加物供给是「只需求·拍照」,「不要求·录录像」。所以本着「尽大概少的伸手顾客隐秘权限授权,以高达越来越好的顾客体验」的标准,在报名用户相机权限授权时,刻意只报名了相机权限,没报名迈克风权限。(因为产品需若是「只须要·拍照」,「无需·录录像」,所以用不到话筒)但开采这样十二分,相时机不恐怕不开。所以,「只要供给相机权限,那么无论是否同意/须求录有声录像,均必要开启Mike风权限,否则相机分界面会打不开」。那也让我想到了,为啥事情未发生前在「天猫app」、「Wechatapp」等等「有扫码效率的app」上,点击扫码开关后,除了「央浼相机授权」外,都会有「央浼迈克风授权」。(扫码也用不到话筒啊)。而原因正是自己上边说的:「只要必要相机权限,那么无论是或不是允许/须要录有声录制,均必要展开迈克风权限,不然相机分界面会打不开」。

Cocoapods与项目sdk化

微微类别处于某个模块接纳的是将该业务代码打成framework,如相当的重要的金融支付模块。大家在集成私有Pod进度中,将AFNetworking这种第三方库用用Cocoapods管理,其实是打成了.a,而财政和经济sdk如故采取framework,打成.framework,由此双方不能够链接,在Link阶段报错。应用方案是,要么将经济打成.a,要么在金融打成sdk时不勾选AFNetworking

始建叁个新的工程并集成 CocoaPods,步骤如下:

哪些高尚地创立生成私有Pod。

——————「只要一下三步,你就足以温婉地开创生成,你和睦的,私有Pod。然后在您的Xcode工程里经过 Podfile (就如导第三方类库同样)来自由的导入/移除那些私有sdk。若是做得好一点,那完全就是『抽屉式组件』任何时候可插拔,像U盘相通,必要就插入Computer,不须要就拔出计算机,极其便利,且独立性和复用性都相当的高」——————step 1:张开终端,定位到你想创建「私有Pod的公文路线」。推行如下命令:

pod lib create XXXX // XXXX 为你的 pod name

step 2:按终端提示,依据你本人的急需,回答相应难点。(举例:“该pod是用swift如故oc,请选取”)step 3:依据你协和供给及连锁音讯,匡正「XXXX.podspec」文件内容。 // XXXX 为你的 pod name。下一场就开拓Xcode先导写吧。(张开Example工程,把它当正规工程来用,举例Pod Install操作、调用Pod内的接口等)

——————「如何高雅?正是上边这一行的事务」——————

NSNumber *i2 = [NSNumber numberWithInteger:i];//i 为 NSInteger 类型//i2 为 NSNumber 类型
gitmodule的关系与解决方案

子模块和Cocoapods都以试图缓和相符的标题。使用子模块的业务考虑搬迁到Cocoapods 首先需求解耦,模块间解耦。

  • 制造三个味如鸡肋的 Xcode 工程;
  • 展开终端,cd 到工程目录;
  • 创建 Podfile 文件,那足以经过实行 pod init 来完成;
  • 打开 Podfile 文件,第一行必须制订使用的平台和本子;

Xcode工程 gitignore配置。

——————「上边那几个是 通用版的 Xcode工程 gitignore配置。绝大多数 iOS Xcode工程都适用,假若您有非常的急需 git忽略掉的公文,能够和睦在前面扩充相应路线。」——————

# Xcode.DS_Store## Build generatedbuild/DerivedData/## Various settings*.pbxuser!default.pbxuser*.mode1v3!default.mode1v3*.mode2v3!default.mode2v3*.perspectivev3!default.perspectivev3xcuserdata/## Other*.moved-aside*.xccheckout*.xcworkspace!default.xcworkspace## Obj-C/Swift specific*.hmap*.ipa*.dSYM.zip*.dSYM# CocoaPodsPods!Podfile!Podfile.lock# CarthageCarthage/Build# fastlanefastlane/report.xmlfastlane/Preview.htmlfastlane/screenshotsfastlane/test_output# Code InjectioniOSInjectionProject/
CocoaPods安装步骤
  • 升级Ruby环境**

极限输入:

$sudo gem update --system
  • 安装CocoaPods要访谈cocoapods.org,该网址已经被天朝墙壁,供给改变镜像来安装(Taobao镜像曾经结束更新)
1、gem sources --removehttps://rubygems.org/

2、gem sources -a https://gems.ruby-china.org/

3、gem sources -l 
  • 安装Cocoapods
sudo gem install cocoapods

增添或更新 gitignore 配置文件后,怎样文雅的一键更新从前的野史文件。

——————「相信大家在 增添/更新 gitignore 配置文件的时候,都蒙受过这种状态:就是安排文件即使更新好了,但此番交付 git 后,对此番交付的新文件是卓有成效的,对历史文件却是无效的。唯有在下一次交给时,才会对历史文件生效,那样使用起来就能相对比较辛劳。那么,增多或更新 gitignore 配置文件后,怎么着优雅的一键更新早先的野史文件呢?也等于上边这一行的事体」——————

git rm -r --cached .

没有疑问,就是这一行命令,就能够达成了。完整版如下:

git rm -r --cached .git add .git commit -m “XXXXXX”git push origin XXXXXXBranch //「“XXXXXX”」为你的 本次提交 commit 的名字。//「XXXXXXBranch」为你的 本次提交 分支 的名字。

——————

~ ^_^ ~

—— zeroOS 复盘于 2018/07/07「zeroOS·简书号」© 小说权归小编全部

Pod 常用命令

Pod创造Podfile文件有须臾间多少个步骤:

  • pod 常用命令
搜索类库pod search AFNetworking更新第三方库: pod update导入第三方库:pod install 可以删除podfile中某个库的代码,然后: pod install 删除第三方库 :pod uninstall 查看Cocoapods版本: pod --version查找第三方库: pod search AFNetworking
  • $ cd 到工程文件目录,然后创设Podfile文件
$ touch Podfile(创建Podfile文件)
  • $ vim Podfile编辑该公文,然后经过wq保存(具体可参照vim命令行)
platform :ios, '7.0'inhibit_all_warnings!pod 'SDWebImage', '3.7.3'pod 'SSZipArchive', '1.0.1'pod 'JSPatch', '0.1.5'pod 'TMCache', '2.1.0'pod 'FLEX', '2.2.0'
  • 尔后展开后缀名称叫 .xcworkspace文件展开工程
platform :ios, ‘9.0’
pod语义化版本标准
pod 'AFNetworking' // 不显式指定依赖库版本,表示每次都获取最新的版本pod 'AFNetworking', '2.0' //只使用2.0版本pod 'AFNetworking', '> 2.0' //使用高于2.0的版本 pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本 pod 'AFNetworking', '< 2.0' //使用小于2.0的版本 pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本 pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本 pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本 pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本

over.

  • 您供给钦命 Xcode 的 target。假如是 iOS App target 就是工程的名目。通过target '$TARGET_NAME' do代表 target 的开始,end 表示甘休;
  • 在 target 的界定Nelly用 pod '$PODNAME' 添加 pod
主App link Pods库

在集成Cocoapods后,主App可以编写翻译通过,不过无计可施link到Pods 库的状态。首先,大家看一下主App是如何引进Pods中的项目,编写翻译没不正常,关键在于link。

本文由乐虎游戏发布于计算机资讯,转载请注明出处:CocoaPods 系列(三)—— 使用

关键词:

计算机在iOS开垦中应用Protobuf

Protobuf简介 protocolbuffer 是google的一种数据交换的格式,它独立于语言,独立于平台。google提供了多种语言的实现:j...

详细>>

iOS 面试题一

出处:先是程序员,然后才是iOS程序员 —写给广大非科班iOS开发者的一篇面试总结如果让你实现属性的weak,如何实现...

详细>>

Android 滚轮选择器的实现详解

之前项目中需要实现这样一个功能,效果如图所示: 简介 最近用一个日期选择控件,感觉官方的DatePicker操作有点复杂...

详细>>

iOS开发 之 依赖管理

Carthage 最近把线上的项目依赖包管理工具从CocoaPods切换到Carthage上来,使用了一段时间有一些体会.其实谈到iOS依赖包...

详细>>