CocoaPods 使用手册:1、基础 2、高级用法: podspec.json、tweak集成AsyncSocket、 静态库

2021-03-08 11:45:16 浏览数 (2)

前言

原文:

https://blog.csdn.net/z929118967/article/details/75213888

CocoaPods是iOS最常用的类库管理工具.使用它可解决了以下两个问题:

1、项目中的类库有更新,可避免手动下载新版本加入到项目。2、某个类库用到其他类库时,可避免手动管理这些依赖关系

  • 语法
代码语言:javascript复制
platform :ios, '9.0' 
inhibit_all_warnings!
target 'xxx' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for ➜  retail git:(develop) ✗ cat ~/bin/knpod
  #!/bin/sh
  
  #该命令只安装新添加的库,已更新的库忽略
  
#  pod install --verbose --no-repo-update

  pod 'Masonry'
  pod 'IQKeyboardManager'
end

I 基础应用

1.1 应用场景之一:利用CocoaPods,在项目中导入类库


  • 1、先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
  • 2、运行命令:`$ pod install.

1.1.1 在安装CocoaPods之前,首先要在本地安装好Ruby环境。

代码语言:javascript复制
bogon:~ devzkn$  gem sources -l
 
*** CURRENT SOURCES ***
https://rubygems.org/
  • 安装cocoapods
代码语言:javascript复制
bogon:~ devzkn$ sudo gem install cocoapods
代码语言:javascript复制
27 gems installed

  • 判断AFNetworking 是否支持CocoaPods。
代码语言:javascript复制
 
bogon:~ devzkn$ pod search AFNetworking
Setting up CocoaPods master repo

1.1.2 配置 Podfile 文件内容。


注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这里写图片描述

在终端中的当前项目目录下,运行以下命令:

$ pod install

1.1.3 安装第三方库之后,打开项目文件的方式


代码语言:javascript复制
[!] Please close any current Xcode sessions and use `KNTestPod.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
bogon:KNTestPod devzkn$
 

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

1.2 场景2:如何正确编译运行一个包含CocoPods类库的项目


在GitHub上找到一份代码符合自己想需求,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。

同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods

1.2.1 $ pod update

  • pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。
pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了

pod update,再用 $ pod install 就成功了。

1.3 使用例子:


代码语言:javascript复制
# 下面两行是指明依赖库的来源地址
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Artsy/Specs.git'

# 说明平台是ios,版本是9.0
platform :ios, '9.0'

# 忽略引入库的所有警告(强迫症者的福音啊)
inhibit_all_warnings!

# 针对MyApp target引入AFNetworking
# 针对MyAppTests target引入OCMock,
target 'MyApp' do 
    pod 'AFNetworking', '~> 3.0' 
    target 'MyAppTests' do
       inherit! :search_paths 
       pod 'OCMock', '~> 2.0.1' 
    end
end
# 这个是cocoapods的一些配置,官网并没有太详细的说明,一般采取默认就好了,也就是不写.
post_install do |installer|       
   installer.pods_project.targets.each do |target| 
     puts target.name 
   end
end


  • 例如:Specta 的导入
代码语言:javascript复制
target :KNMVC2MVVMDemo2 do
# your app dependencies

  target :KNMVC2MVVMDemo2Tests do
    inherit! :search_paths

    pod 'Specta', '~> 1.0'
    # pod 'Expecta',     '~> 1.0'   # expecta matchers
    # pod 'OCMock',      '~> 2.2'   # OCMock
    # pod 'OCHamcrest',  '~> 3.0'   # hamcrest matchers
    # pod 'OCMockito',   '~> 1.0'   # OCMock
    # pod 'LRMocky',     '~> 0.9'   # LRMocky
  end
end

1.3.1 忽略 CocoaPods 第三方库警告

  • 忽略 CocoaPods 第三方库警告

https://kunnan.blog.csdn.net/article/details/77678850

  • 忽略引入库的所有警告
代码语言:javascript复制
# 忽略引入库的所有警告(强迫症者的福音啊)
inhibit_all_warnings!

  • 忽略单个库的警告
代码语言:javascript复制
pod 'Masonry', :inhibit_warnings => true

II、高级用法

2.1 podspec.json

https://github.com/CocoaPods/Specs/blob/master/Specs/7/8/5/OctoKit/0.5/OctoKit.podspec.json

代码语言:javascript复制
    pod 'OctoKit', :podspec => 'KNMVVMReactiveCocoaDemo/0.5/OctoKit.podspec.json'

通过Podfile指定路径,然后pod update。

2.2 只安装新添加的库,已更新的库忽略

  • 只安装新添加的库,已更新的库忽略

https://kunnan.blog.csdn.net/article/details/103830017

III、综合例子

3.1 tweak 集成CocoaAsyncSocket

  • iOS逆向:tweak 集成CocoaAsyncSocket(建连、断开、重连、心跳、通用请求)

0 人点赞