您的位置:首页 > 移动开发 > IOS开发

iOS之CocoaPods常见问题汇总

2017-06-20 23:49 323 查看
    习惯了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/  





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字段的类库。

成功的搜索结果如图:



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,效果如图






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 就都可以了。







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

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





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

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





方法:在终端跳转到工程目录,直接执行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----------下载

有兴趣的朋友可以了解一下以下文章:

CocoaPods详解之----使用篇

CocoaPods详解之----进阶篇

CocoaPods详解之----制作篇
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: