iOS-CocoaPods常见问题

习惯了Android Studio开发的朋友一定听说过Gradle,我们可以通过依赖关系,不用下载源码,简单便捷地添加各种第三方库。那么iOS开发有没有类似功能呢?有,那就是我们今天提到的CocoaPods了。

由于网上有许多相关教程,这里就不一一细述了,本文主要总结CocoaPods使用中常见错误和知识点,希望可以帮助初学者更快的熟悉和使用CocoaPods。

Xcode新建了一个Single View App(已安装CocoaPods),如何引入第三方框架Masonry?

1、打开Terminal—>pod search masonry查询,获取结果:pod 'Masonry', '~> 1.1.0'
2、cd到工程的根目录,创建空白的Podfile文件:touch Podfile
3、编写Podfile文件内容并保存

target ‘MasonryDemo’ do 
pod 'Masonry', '1.1.0'
end

4、在Terminal执行:pod install 生成MasonryDemo.xcworkspace(原来是MasonryDemo.xcodeproj),创建成功。

1、执行pod install命令半天没反应
这有可能是Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,解决方法如下:

gem sources --remove https://rubygems.org/
等有反应之后再敲入以下命令:gem sources -a https://gems.ruby-china.org/
要想验证是否替换成功了,可以执行:gem sources -l 结果:
*** CURRENT SOURCES ***
https://gems.ruby-china.org/

image.png

2、Unable to find a pod with name, author, summary, or description matching AFNetworking

这种情况出现在:执行pod search 命令失败,无法搜索第三方库。处理步骤如下:

1)终端输入:pod setup
安装CocoaPods执行pod install时,系统会默认操作pod setup,然而由于中国强大的墙可能会pod setup不成功。这时就需要手动执行
会出现Setting up CocoaPods master repo,稍等几十秒,最底下会输出Setup completed。说明执行pod setup成功。

2)如果pod search操作还是搜索失败,终端输入:pod search AFNetworking
输出:Unable to find a pod with name, author, summary, or descriptionmatching 'AFNetworking' 这时就需要继续下面的步骤了。

3)删除~/Library/Caches/CocoaPods目录下的search_index.json文件
pod setup成功后,依然不能pod search,是因为之前你执行pod search生成了search_index.json,此时需要删掉。
终端输入:rm ~/Library/Caches/CocoaPods/search_index.json

4)删除成功后,再执行pod search。终端输入:pod search afnetworking(不区分大小写)
输出:Creating search index for spec repo 'master'.. Done!,稍等片刻······就会出现所有带有afnetworking字段的类库。

成功的搜索结果如图:

image.png

3、如何新增第三方库?

1)终端cd到工程路径,然后终端输入 vim Podfile,
2)键盘输入 i,进入编辑模式,
输入
platform :ios, '7.0'
pod 'MBProgressHUD','~> 0.8'
pod 'AFNetworking','~> 2.0'

3)然后按Esc,并且输入保存退出命令:大写ZZ 或者 “ :wq”
4)最后pod install,CocoaPods就开始为我们做下载源码、配置依赖关系、引入需要的framework等一些列工作。

PS:新增第三方库:在原PodFile文件直接添加即可,完成执行pod install,效果如图

image.png

4、双击打开xxx.project文件无法通过编译

原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。

5、****The dependency MJExtension (~> 3.0.13) is not used in any concrete target.

这种情况会在执行Pod Install 出现,处理方法如下:

1)终端cd到工程路径,然后终端输入 vim Podfile,
2)键盘输入 i,进入编辑模式,

修改PodFile内容为

platform :ios, '8.0' 
target 'MyAppName' do   
pod 'MJExtension', '~> 3.0.13'  
end

里面的 MyAppName 记得替换为自己工程里面的target。

3)然后按Esc,并且输入保存退出命令:大写ZZ 或者 “ :wq”
4)最后pod install 或者**** pod update 就都可以了。

image.png

6、prefix.pch文件引用CocoaPods库的.h文件报错,提示找不到文件。

解决方法:TARGETS -》 Build Settings -> Search Paths -> User Header Search Paths 输入${SRCROOT},并且在后面选择recursive。

image.png

7、从Github下载的工程,没有附带第三方库。

Github下载的工程,代码文件中只有PodFile.lock,找不到相关联的第三方库源码,处理方法如下:

image.png

方法:在终端跳转到工程目录,直接执行pod install命令即可。

8、podfile 变为了exec 可执行文件
unix文件中没有“类型”,也没有扩展名,变为exec文件只是因 为权限更改了。如果想改为可编辑状态,需要更改文件权限,

终端使用命令:chmod 644 文件名

9、不要使用TextEdit编辑PodFile文件

有时候我们图方便,直接使用TextEdit编辑PodFile文件,执行pod install 时报错:

[!] Smart quotes were detected and ignored in your Podfile. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

还是乖乖的使用命令吧:

vim Podfile----打开文件

输入i---------进入编辑模式

按键盘Esc,输入大写ZZ-----保存退出

pod install----------下载

摘自:https://blog.csdn.net/lvxiangan/article/details/73503690

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,714评论 0 39
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,053评论 3 119
  • 子夏说:虽小道必有可观焉,致远恐泥,是以君子不为也。扬雄说:诗书小道,壮夫不为。但是中国传统文人几乎无人不...
    梅篆儒阅读 5,435评论 0 1
  • 这幅脑图主要是针对一句月季修剪谚语展开的,“冬天剪成小和尚,春天开成花姑娘”是许多月季爱好者所熟知的,我按照谚语的...
    花非花888阅读 2,224评论 10 7
  • 今天学习《不读财报就出局》平均收现天数。 一,概念及计算方法: 平均收现天数=360/应收账款周转率。 应收账款周...
    Forest_3a32阅读 1,072评论 0 0

友情链接更多精彩内容