IOS 开发学习十八 包管理工具 CocoaPods的使用
2015-05-25 09:52
465 查看
一、简介
开发IOS应用时,经常会用到一些第三方开源类库,如JSONKit、AFNetWorking、QRCode等。一个类库可能还会引用其它类库。手动去一个个加载就显得比较麻烦。而CocoaPods就是用来解决类库引用问题的,它类似于PHP上的Composer、JAVA上的Maven,也许与Linux平台的apt-get命令也有相似之处。官网地址: https://cocoapods.org
二、安装
CocoaPods需要先安装好Ruby环境,默认应该是已经安装的,这里不再介绍Ruby安装方式,直接介绍CocoaPods安装。命令行输入
sudo gem install cocoapods如果输入密码后很长时间没有反应,或提示无法找到,可能地址被墙了,那要先输入:
gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 gem sources -a https://gems.ruby-china.org/
gem sources -l
把镜像改为国内的镜像。
这时界面输出:
*** CURRENT SOURCES *** https://gems.ruby-china.org/[/code]
再执行安装命令。
如果提示:
Unable to resolve dependencies:cocoapods requires cocoapods-core(=0.35.0),...
则先运行:sudo gem update --system如果再提示:
ERROR: While executing gem... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
则运行:sudo gem install -n /usr/local/bin cocoapods
安装完后执行pod install 命令 ----安装仓库。
也可以通过插件安装:(未测试)
安装一个xcode插件管理工具http://alcatraz.io,执行curl -fsSLhttps://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh|
sh 完了打开xcode->window->package manger 搜cocoapods安装,方便操作。三、ionic项目添加CocoaPods支持
1. 使用xcode打开项目
2. 编辑文本vim Podfile# Uncomment this line to define a global platform for your project platform :ios, '7.0' target 'Demo' do pod 'AFNetworking', '~> 2.0' pod 'JSONModel', '~> 1.1.2' pod 'AFKissXMLRequestOperation@aceontech', '~> 0.0.4' end target 'DemoTests' do end然后命令行运行:pod install --verbose --no-repo-update四、使用示例
1.项目里引用QRCode
首先验证QRCode是否支持CocoaPodspod search QRCodeReaderViewController输出:-> QRCodeReaderViewController (3.4.0) Simple QRCode reader for iOS 7 and over pod 'QRCodeReaderViewController', '~> 3.4.0' - Homepage: https://github.com/YannickL/QRCodeReaderViewController - Source: https://github.com/yannickl/QRCodeReaderViewController.git - Versions: 3.4.0, 3.3.0, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.0, 3.0.0, 2.0.0, 1.0.1, 1.0.0 [master repo]到项目的.xcodeproj目录,建立Podfile文件:touch Podfilevim Podfilesource 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0' pod 'QRCodeReaderViewController', '~> 3.4.0'
保存后,输入命令:pod install
安装完成后,输入命令:open MyProject.xcworkspace打开项目,不要用.xcodeproj打开项目。
以后需要升级使用的开源库时,只需要输入:
pod update
即可自动完成更新。四 删除类库
1.删除Poads里的类库文件夹
2.把Podfile里删除对应行
3.重新执行pod install命令。五 其它命令
pod repo remove master --删除主仓库
有时经常卡住,可能要这样清理一下。如果xcode升级,这里有时也要这么操作一下:
pod setup --重建安装
pod install
跳过更新仓库的操作直接安装类库
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update方法2:
运行:rm -rf ~/.cocoapods/repos/masterpod repo remove masterpods install --verbose可以看到下载提示。
确认是否在运行:cd ~/.cocoapods du -sh
看值一直在变大,就是正在下载。方法3:
下载安装github desktop登陆github,把项目https://github.com/CocoaPods/Specs fork到自己的github账户下打开github desktop , clone Specs到本地电脑改名为master,放到~/.cocoapods/repos/master其它问题处理:
运行pod install时
提示An error occurred while processing the post-install hook of the Podfile.undefined method `project` for #<Pod::Installer:0x007ffa309af2e0>
处理方法:
打开Podfile,把里面的 project 改为 pods_project不支持i386
工程在模拟器上编译报错,不支持i386,Cocoapods确实还不支持64位模拟器,解决办法:
方法1:
1.build active architecture only 在debug的时候设置成YES,不要在release的时候用模拟器
2.other linker flags 加一个 $(inherited)
pods root也可能需要设置为$(inherited)
方法2:(未测试)
点击项目文件 project.xcodeproj,右键`显示包内容`,用文本编辑器打开`project.pbxproj`,删除`OTHER_LDFLAGS`的地方,保存,回到 Xcode,编译通过。需要对第三方库修改
先把git fork到自己账号下,然后编辑Podfile:platform :ios, '7.0' pod '要导入的库', :git => 'https://github.com/我的github/要导入的库'Xcode 提示Pod错误
diff: /../Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
1.关闭Xcode,重新执行pod install,之后再重新打开Xcode运行。
2.删除一下文件
xcworkspace
Podfile.lock
Pods文件夹
~/Library/Developer/Xcode/DerivedData路径下对应工程的文件夹
然后重新执行pod install
3.如果以上都不行
检查Project->选择Info tab->看看Configurations是不是被设置为 None了,如果是None的话改为Pods
4.右键工程根目录下的xxx.xcodeproj文件,显示包内容
双击打开project.pbxproj文件查找"Pods-resources.sh", 把路径改为如下红框处:
解决方案参考:http://www.jianshu.com/p/4c3164fe552a
相关文章推荐
- iOS高效开发 —— 管理第三方框架工具 CocoaPods使用
- iOS开发中SVN管理工具的使用
- iOS深入学习(使用CocoaPods进行第三方资源管理)
- iOS之旅--依赖管理工具CocoaPods 使用
- iOS深入学习(使用CocoaPods进行第三方资源管理)
- IOS开发基础—通过联系人管理实例学习xib的基本使用
- ios开发使用cocoapods管理公司内部代码依赖,私有库,本地库
- iOS开发辅助工具-插件集成管理工具-Alcatraz的安装和使用
- iOS开发中的第三方类库管理工具-CocoaPods-
- iOS开发笔记--使用CocoaPods来管理iOS项目的依赖库
- iOS-CocoaPods第三方库管理工具的使用,(很多公司都用这个)
- 【ios开发学习】Cocoa 新的依赖管理工具:Carthage
- iOS开发提高效率之:使用CocoaPods管理依赖库
- iOS深入学习(使用CocoaPods进行第三方资源管理)
- iOS开发-Xcode插件管理工具Alcatraz的安装和使用
- iOS深入学习(使用CocoaPods进行第三方资源管理)
- iOS深入学习(使用CocoaPods进行第三方资源管理)(转)
- iOS开发工具之Alcatraz(Xcode插件管理工具)的安装使用(Xcode7)
- iOS - Cocoapods 包管理工具的安装与使用
- iOS类库管理工具CocoaPods安装和使用教程