cocoapods原理-配置调试环境

背景

作为一名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源

猜你喜欢

转载自juejin.im/post/7226696723354501157