使用Cocoapods制作带测试Example的framework

为了搞这个东西绕了我两天,总算是搞定了,记录一下防止下次再被坑,感慨下还是我家gradle好用~

一、安装cocoapods

sudo gem install cocoapods

很多blog都用的淘宝啥的镜像,自己搞了半天建议还是直接用原版的,不然版本问题,镜像问题啥的又弄得死去活来。
一堆控制台刷屏后完成,测试一下:

pod --version

输出版本号表示安装成功~

二、使用pod来给项目添加第三方类库

一般项目会使用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

然后就是问答时间,哈哈哈哈哈,自己玩吧,玩好之后系统会自动创建一个项目然后打开,如下:
使用Cocoapods制作带测试Example的framework_第1张图片

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 目录下面。
使用Cocoapods制作带测试Example的framework_第2张图片

8、最后,小伙伴们可以使用打包好的静态库了。直接把静态库拖入到项目中,然后,加入指定的依赖项目即可。

现在的记录就是未来的效率~

你可能感兴趣的:(移动开发)