背景

作为一名iOS开发者,每一天都跟cocoapods指令打交道,但是每一个指令背面如何运转的,咱们能够利用原理做什么能够提高工程效率是咱们需要去探索的,本篇文档作为开篇摆开这个专题

一、环境

  • mac os 版别:13.1
  • rvm版别:1.29.12
  • ruby版别:2.7.2
  • 本地cocopods/pod版别:1.5.3
  • cocoapods源码: 1.5.3

留意:cocoapods源码和本地cocopods/pod版别一定要对应

二、工程装备过程

  • 第一步:创立工程cocoapods_debug
  • 第二步:在cocoapods_debug目录下,把cocoapods源码放入,cocoapods源码文件夹我这儿叫 CocoaPods ,后续会装备加载路径
  • 第三步:在cocoapods_debug目录下,创立一个pod测验工程,这儿叫 TestLibrary,后续会装备加载路径,
    • 3.1 在TestLibrary履行pod init
    • 3.2 podfile装备如下
source 'https://cdn.cocoapods.org'
source 'https://github.com/CocoaPods/Specs.git' 
#inhibit_all_warnings! 
platform :ios, '10.0' 
target 'TestLibrary' do
   pod 'Masonry'
end
  • 第四步:在cocoapods_debug目录下创立一个Gemfile文件,内容如下:
source 'https://rubygems.org'
gem 'cocoapods', path: './CocoaPods' # 1 
gem 'ruby-debug-ide' # 2 
gem 'debase' 
#gem 'debase', '0.2.5.beta2' # 3 ruby3.0.0需要这个版别
  • 第五步:在cocoapods_debug目录下,履行 bundle install
    这儿会遇到各种问题,ruby、cocopods版别、cocoapods源码版别 不对应都会遇到问题,不过上面整理的环境版别没有问题

    • 问题: 履行 bundle install 提示 ERROR: Error installing debase: ERROR: Failed to build gem native extension.
      github.com/ruby-debug/…
    • 处理: debase依赖0.2.5.beta2就能够,原因是ruby 3.0.0内部对debase版别不支持
  • 第六步:vscode打开cocoapods_debug,第一次会提示创立一个launch.json或许自己新建 .vscode/launch.json,内容如下

{
    "configurations": [
      {
      "name": "Debug CocoaPods Plugin",
      "showDebuggerOutput": true,
      "type": "Ruby",
      "request": "launch",
      "useBundler": true,
      "cwd": "${workspaceRoot}/TestLibrary", // pod 指令履行的路径
      "program": "${workspaceRoot}/CocoaPods/bin/pod",
      "args": ["install", "--verbose"], // `pod` 指令的参数
      }
    ]
  }  
  • 第七步:按F5或许debug按键 就能够断点调试了
    • 问题1: [!] No `Podfile’ found in the project directory.在源码调试的时分,咱们明明创立了Podfile文件,仍报这个过错,同时还报了一个警告

    • 处理方案: 在.bash_profile或许.zshrc文件里边,增加export LANG=en_US.UTF-8即可,就处理了这个问题。

    • 问题2:提示source源问题

    • 处理方案:能够更换cdn或许github源