IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 使用RubyMine调试CocosPod和插件源码 -> 正文阅读

[移动开发]使用RubyMine调试CocosPod和插件源码

有时我们需要自己开发Cocoapods插件,对pod的流程进行定制化,那么开发过程就不然要对ruby代码进行debug,如果只是通过puts打印,那效率就太拉胯了。因此,熟悉一下如何时候IDE工具进行ruby debug就很有必要了。

在了解开发插件之前,我们也许也需要了解Cocoapods的源码,运行打点debug源码也对我们了解cocospod的逻辑可以有更深入的理解。

一、Cocoapods源码

下载源码

git clone https://github.com/CocoaPods/CocoaPods.git 

这里我们下载pod源码路径为 /Users/lupeihong/Documents/git/CocoaPods

这里要提一下,Cocoapods 的代码并不全都在 Cocoapods/Cocoapods 项目中,而是拆分为了多个 Repo。在 Cocoapods README 的最后,对这些项目进行了简述:

  • CocoaPods: Cocoapods 命令行工具
  • CocoaPods Core: 处理 space 与 podfile,比如 Podfile DSL 的定义就在这个项目中
  • CocoaPods Downloader: 下载器
  • Xcodeproj: 解析 .xcodeproj 文件解析
  • CLAide: 命令行参数解析器
  • Molinillo: 依赖分析
  • CocoaPods.app: 比较像 Cocoapods 的 UI 版本,包含一些功能增强,比如 Podfile 联想
  • Master repository: Spec 仓库
    其中最后两个都不是源代码,可以先不去关心。
    剩下的仓库,有需要debug就可以 clone 相应源码下来。

二、环境准备

1、基于RubyMine
Ruby IDE RubyMine 下载:https://www.jetbrains.com/ruby/
2、在本地新建个xcode工程作为pod的工作目录,目录RubyTestDemo
3、在RubyTestDemo下新建podfile文件,随便pod个库如:

platform :ios, '8.0'

#source 'https://github.com/CocoaPods/Specs.git'

target 'RubyTestDemo' do
pod 'AFNetworking'
pod 'Masonry'
end

4、Gemfile,在工程目录下执行bundle init,生成Gemfile文件,在Gemfile文件中指定cocopods源码路径的方式进行bundle

source "https://gems.ruby-china.com/"

# gems for cocoapods
gem 'cocoapods', path: '/Users/lupeihong/Documents/git/CocoaPods'

如果这里你也有其他的插件或者CocoaPods子项目(如CocoaPods Core或者XcodeProj),那么,Gemfile也要指定对应的源码路径。

有子项目时的版本问题
在 clone 过程中,注意 CocoaPods/Gemfile.lock 中依赖的组件版本。

比如在 CocoaPods 1.8.4 中,XcodeProj 依赖的是 1.13.0 这个 tag,而不是最新的
master。如果直接进行接下来的 bundle install 可能会出现版本仲裁错误。做法是,checkout XcodeProj 到
1.13.0 这个 tag。

然后,在RubyTestDemo目录下,执行bundle install安装ruby环境
在这里插入图片描述
输入可看到项目的ruby环境pod已经是指定的本地cocospod源码,因为源码工程是配置了gemspec的文件了。
在这里插入图片描述

三、Debug 配置

1、我们通过rubyMine打开Cocospod的源码工程,点击上方的debug config添加配置。
RubyMine 主界面右上角 → Add Configuration → + → Ruby,新增 Ruby 的调试配置
在这里插入图片描述
2、创建新的config配置
在这里插入图片描述
Ruby script: 使用我们pod源码路径下的pod工具
Script arguments:填写插件命令的参数
Working directory:添加工作路径,就是刚才的Demo路径
Ruby SDK:一定要填写pod所对应的ruby版本
其他的选项使用默认设置即可
3、勾选Bundler一栏中 bundle exec,否则执行的就不是源码的对应的插件
在这里插入图片描述
4、保存配置后,点击小虫子开始调试
在这里插入图片描述
因为我们这里配debug配置命令是install,所以会在工作目录下执行pod install。
pod 命令的入口大多在 CocoaPods/lib/cocoapods/command/ 目录下。比如 pod install 对应着 install.rb 中的 run 方法。因此我们在源码的installer.rb打点
在这里插入图片描述
可看到IDE成功断点到了

在这里插入图片描述

四、调试插件

同理,如果你是自定义的pod插件,也不关心cocospod的调用过程,只是想debug 插件代码。
1、假设你本地有插件 cocoapods-packager的工程源码
只需要调整一下Demo工程的Gemfile,把cocospod修改为

gem 'cocoapods-packager', path: '../cocoapods-packager' 

然后重新 bundle install

2、用ruby打开cocoapods-packager工程,修改debug配置
在这里插入图片描述

  • Ruby script:如果你这里不需要使用cocospod的源码来调试了,所以我们直接默认的pod路径
    不知道路径的可以在终端中执行:which pod 命令的生成的pod路径
  • Script arguments:因为我们这里要调试插件,所以修改为触发插件的命令

保存后就可打点debug了

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:34:46  更:2022-07-17 16:38:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:25:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码