为了搞这个东西绕了我两天,总算是搞定了,记录一下防止下次再被坑,感慨下还是我家gradle好用~
sudo gem install cocoapods
很多blog都用的淘宝啥的镜像,自己搞了半天建议还是直接用原版的,不然版本问题,镜像问题啥的又弄得死去活来。
一堆控制台刷屏后完成,测试一下:
pod --version
输出版本号表示安装成功~
一般项目会使用pod来安装一些第三方的库,这里以AFNetworking为例:
1、进入你的项目文件夹根目录,输入:
pod search AFNetworking
这里我遇到了Unable to find a pod with name, author, summary, or description matching的问题,使用如下方法解决(先用2,不行再用1):
1)执行pod setup其实在你安装CocoaPods执行pod install时,系统会默认操作pod setup,然而由于中国强大的墙可能会pod setup不成功。这时就需要手动执行pod setup指令,如下:
终端输入:pod setup
会出现Setting up CocoaPods master repo,稍等几十秒,最底下会输出Setup completed。说明执行pod setup成功。
如果pod search操作还是搜索失败,如下:
终端输入:pod search AFNetworking
2)删除~/Library/Caches/CocoaPods目录下的search_index.json文件
pod setup成功后,依然不能pod search,是因为之前你执行pod search生成了search_index.json,此时需要删掉。
终端输入:rm ~/Library/Caches/CocoaPods/search_index.json
删除成功后,再执行pod search。
执行pod search
终端输入:pod search afnetworking
(不区分大小写)
输出:Creating search index for spec repo ‘master’.. Done!,稍等片刻······就会出现所有带有afnetworking字段的类库。
2、确认能找到我们要的类库后,使用CocoaPods的init命令,在当前目录下生成Podfile配置文件。具体命令如下:
pod init
运行命令后,发现当前目录下多了一个Podfile文件,我们需要打开它。注意官网提示,最好用Xcode等开发环境打开,不要使用文本编辑器,不然可能会因为编码造成一些问题。打开的命令为:
open -a Xcode Podfile
而后,可以看见Podfile的内容为:
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
# use_frameworks!
target '_projectName' do
end
3、配置Podfile文件。
Podfile文件实际上是一个说明书,通过配置它,可以告诉CocoaPods应该安装哪些库。在AFNetworking的官网,也可以查询到要安装AFNetworking具体应该如何写Podfile。现在将Podfile修改为:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
target '_projectName' do
pod 'AFNetworking', '~> 3.0'
end
4、安装AFNetworking。
Podfile修改完毕后,使用CocoaPods的安装命令,就可以开始安装AFNetworking了,命令如下:
pod install
而后稍作等待,终端会输出一些反馈,直到输出pods installed,而后光标停止。
5、通过xcworkspace文件打开项目。
此时观察项目目录,会发现多出了项目名.xcworkspace文件,双击文件,Xcode会自动打开项目,会发现多出了Pods目录,并且在其目录下可以找到AFNetworking文件夹。
1、打开终端进入你的workspace,输入
pod lib create MyPodTest
然后就是问答时间,哈哈哈哈哈,自己玩吧,玩好之后系统会自动创建一个项目然后打开,如下:
2、修改.podspec文件如下
#
# Be sure to run `pod lib lint MyPodTest.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = 'MyPodTest'
s.version = '0.1.0'
s.summary = 'A short description of MyPodTest.'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
s.homepage = 'https://github.com/[email protected]/MyPodTest'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Amuro' => 'Amuro' }
s.source = { :git => '/Users/didi/Downloads/DevelopIOS/workspace/MyPodTest', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/'
s.ios.deployment_target = '8.0'
s.source_files = 'MyPodTest/Classes/*.{h,m}'
s.source_files = 'MyPodTest/Classes'
s.source_files = 'MyPodTest/Classes/**/*.{h,m}'
# s.resource_bundles = {
# 'MyPodTest' => ['MyPodTest/Assets/*.png']
# }
s.public_header_files = 'MyPodTest/Classes/MPTInterface.h'
s.frameworks = 'UIKit'
s.dependency 'AFNetworking', '~> 2.3'
end
这里就不详细介绍每个item了,写代码的人都能看懂,主要是source那里要修改成本地地址。
3、开始愉快的coding吧,所有代码记得要放到podspec配置的文件夹下面。
4、代码写完测试通过后,使用 pod lib lint 验证类库是否符合 pod 的要求,可以使用 –allow-warnings 来忽略一些警告。
pod lib lint MyPodTest.podspec --allow-warnings
5、验证通过后进入Example文件夹执行:
cd Example
pod install --verbose --no-repo-update
6、回到项目根目录,提交源码,打 tag。
cd ..
git add .
git commit -a -m 'MPT v0.1.0'
git tag -a 0.1.0 -m 'MPT v0.1.0' //一定要打tag 而且版本号不能错,否则会失败
7、打包。此时你需要安装一个 CocoaPods 打包插件 CocoaPods-Packager,安装命令如下:
sudo gem install cocoapods-packager
安装完成之后,就可以愉快地继续打包了,在终端输入如下命令(切记,此时你应该在你的项目根目录下,即 podspec 文件所在目录):
打包成 .Framework
pod package *.podspec --force
打包成 .a
pod package *.podspec --library --force
完成且没报错的话,项目目录下面会多了一个MyPodTest-0.1.0 的文件夹,这个便是插件帮我们打好的静态库了,而 .framework 文件是放在 了 ios 目录下面。

8、最后,小伙伴们可以使用打包好的静态库了。直接把静态库拖入到项目中,然后,加入指定的依赖项目即可。
现在的记录就是未来的效率~