IOS 开发学习十八 包管理工具 CocoaPods的使用
Posted 编程圈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 开发学习十八 包管理工具 CocoaPods的使用相关的知识,希望对你有一定的参考价值。
一、简介
开发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/
再执行安装命令。 如果提示: 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
如果提示: You don't have permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory
尝试了很多方法,最后成功的是:
brew info ruby
# 看到其中提示:
# If you ened to have ruby first in your PATH run:
# echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
就是执行echo那一句。
如果提示: You don't have /Users/用户名/.gem/ruby/2.3.0/bin in your PATH,gem executables will not run.
vim ~/.bash_rc和 vim ~/.zshrc
添加内容:
export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
export PATH="$PATH:$GEM_HOME/bin"
执行 source ~/.bash_rc
安装完后执行pod install 命令 ----安装仓库。
也可以通过插件安装:(未测试)
安装一个xcode插件管理工具
http://alcatraz.io,执行curl -fsSL
https://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 Podfile
vim Podfile
source '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命令。五 其它命令
有时经常卡住,可能要这样清理一下。如果xcode升级,这里有时也要这么操作一下:
pod repo remove master --删除主仓库
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的话改为Pods4.右键工程根目录下的xxx.xcodeproj文件,显示包内容
双击打开project.pbxproj文件查找"Pods-resources.sh", 把路径改为如下红框处:
解决方案参考:http://www.jianshu.com/p/4c3164fe552a架构异常的问题
Library/ Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:275: [BUG] Bus Error at 0x0000000102b20000 执行命令:sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
以上是关于IOS 开发学习十八 包管理工具 CocoaPods的使用的主要内容,如果未能解决你的问题,请参考以下文章
Linux企业运维——Kubernetes(十八)Helm包管理工具
Linux企业运维——Kubernetes(十八)Helm包管理工具