Cocoapods 插件调试环境配置

由于本人对Cocoapods的源码熟悉程度还不到位,本文章只说明开发环境的配置,并没有阐述Cocoapods插件的工作原理。如果需要我将在后续的文章中讲解。

背景

最近在研究组件的二进化。
由于各个开源库都是以源码的形式依赖到项目中,随着项目越来越大,过多的pod依赖导致编译速度缓慢,从而导致了开发效率的降低。所以我就尝试将这些源码打包成编译后的产物集成到项目中来。由于我们的项目严重依赖Cocoapods,我打算开发Cocoapods的插件来实现整个二进制化的过程。
之前在google上搜索在rubymine上开发cocoapods插件时并没有找到相应的教程,只找到了vscode的配置方法,虽然vscode是一个强大的ide,但是他并不是专业开发ruby的,在断点调试的时候还是有些笨重。所以我只能自己采坑去尝试配置rubymine上的开发环境。好在经过两天的时间,我成功了,接下来我会详细说明配置的过程。

开发环境

ide:jtbrain出品的rubymine
软环境:ruby,bundler,cocoapods

开始

  1. 准备源码
    首先去github下载cocoapods源码
    创建cocoapods插件或者使用其他人已经写好的插件,我选择了后者,因为已经有人写好了,我不想重复找轮子。我需要做的只是对它的少量改动。
    创建一个文件夹名为script将插件的源码和cocoapods的源码拖到该目录下。
    并将自己编写的pod工程拖到该目录下。
    现在他看起来是这个样子

  2. 配置Gem
    新建名为Gemfile
    文件内容为

    source 'https://gems.ruby-china.com'
    gem 'cocoapods', path: '/Users/dreamtracer/Documents/Work/foru/binable_project/scripts/CocoaPods/'
    gem 'cocoapods-bin', path: '/Users/dreamtracer/Documents/Work/foru/binable_project/scripts/cocoapods-bin/'
    group :debug do
    gem 'ruby-debug-ide'
    gem 'debase'
    end

    在script目录下执行 bundle install,会将所有相关依赖项都加载这个项目中。

  3. 配置Rubymine
    在Rubymine中打开script目录

    点击Edit Configurations

    选择 Gem Command
    Gem name: 输入cocoapods-bin(插件的gem名字)
    Excutable name: 输入 pod(这个可以固定,因为这是宿主程序)
    Arguments: pod命令执行需要的参数,以cocoapods-bin为例 执行命令为pod bin archive,则可以填写 bin archive
    Working directory: 选择测试pod的工程目录,也就是podspec文件存在的目录。
    Ruby SDK 选择Use Other SDK and gem,一般情况下选择默认即可,如果有rvm管理多版本的ruby,则需要选择cocoapods所存在的ruby版本。
    选择BundlerTab

    在 Run the script in context of the bundle(bundle exec) 打钩
    点击Apply和Ok 配置完成

享受

配置完毕,现在你可以打断点,点击小虫子可以进行断点调试了。

You Might Also Like
发表评论