现在网上关于xcode插件的教程比较少,能搜到的也xcode4的,到现在为止,xcode已经7.2.1(2016-3-8),还有便是教程都还有一些坑并没有说到,在次,一并说了,如有遗漏,欢迎请教。

这里有一篇说得比较详细到教程https://onevcat.com/2013/02/xcode-plugin/

本文的例子也是基于这篇文章的。

1 运行机理

xcode每次启动时,会加载路径
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
下后缀名为.xcplugin的插件文件(其实是一个bundle)。
也就是说,xcode与插件处于同一个进程。然后便通过hook的方式,与xcode进程交互,以达到插件到作用。

注意一点,每次xcode加载插件时,确保Info.plist文件的DVTPlugInCompatibilityUUIDs字段包含当前xcode版本的uuid。

当前xcode的uuid获取方式:
在终端执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID

Info.plist的位置
右键显示包内存

确保DVTPlugInCompatibilityUUIDs字段包含有当版本xcode对应的uuid

一般网上的插件加载不成功,很多是因这个原因。

2 创建第一个插件工程

这里介绍两种方法创建一个插件工程,第一种是现成的,使用Alcatraz(一种xcode插件管理器),创建一个插件工程模版。地址在这里[http://www.cocoachina.com/ios/20150506/11765.html
](http://www.cocoachina.com/ios/20150506/11765.html
)

xcode插件入门教程相关推荐

  1. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)...

    本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习. GameplayAbilities插件 ...

  2. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)

    本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习. GameplayAbilities插件 ...

  3. 剑网三插件入门教程(4):事件

    本篇教程将通过编写一个简单的自动采集插件来介绍剑三的"事件(Event) "这个概念. 自动采集插件的功能就是自动采集身边的矿和草药,当人物停下来的时候,如果身边有可以采集到的矿和 ...

  4. sweetalert 显示html,SweetAlert 弹窗插件入门教程

    说明 功能说明:一款美的无可替代的弹窗插件 同类文章 这里是其他博主写的几篇,小编觉得挺不错的,大家可以与本文综合来看 ①CSDN 点击访问 ②博客园-北执 点击访问 ③博客园-郁冬 点击访问 ④闲云 ...

  5. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(七)Ability的信息传递等

    本节及后面的内容将会探索更加有意思的内容,更加逼近实际的使用的内容.我们本节内容不难,讲的是释放Ability时的信息传递: 第一步:创建一个GA称为GA_AOE_BlindVengeance,复仇忌 ...

  6. gazebo入门_【ROS-Gazebo】仿真插件编写教程(1)——概述

    前言 本系列教程的主要是对 Gazebo的官网教程 的翻译与理解.之前查找国内的中文资料,发现并没有关于如何编写Gazebo插件的教程.据我猜测,大概是因为这个技能属于"两不管"地 ...

  7. Egg框架入门教程合集之插件/工具/教程/专栏/开源项目

    Egg框架入门教程之示例合集 Awesome Egg.js 很棒的清单,精选了最好的Egg.js插件,工具,教程,文章等.欢迎公关! 内容 博客 文章 讲解 会议活动 外挂程式 应用领域 样板 构架 ...

  8. 最新易语言调用大漠插件制作脚本入门教程

    最新易语言调用大漠插件制作脚本入门教程 这是田野学院的一套零基础视频.学习做辅助脚本入门还是不错的. https://pan.baidu.com/s/1BWd2_kIjL6OLE7q-VcDVlw 提 ...

  9. 【Gazebo入门教程】第六讲 控制器插件的编写与配置(下)

    [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) \qquad 文章目录 [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) 一.系统插件 二.Velodyne传感器插件 1. ...

最新文章

  1. ae万能弹性表达式_外置常用ae插件 快速掌握AE软件的精髓
  2. python做abaqus后处理_python进行abaqus后处理的二次开发,我想提取odb文件中的nodeSet,结果总提示Keyerror,请各位大神指教。...
  3. c语言 if 多个判断条件执行顺序_C语言之流程控制选择语句
  4. 真相了!AI 程序员:我们根本没有 80w 年薪好么?
  5. 消息已读未读的模型设计_阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现...
  6. SQL存储过程调试方法
  7. [目标检测] Faster R-CNN 深入理解 amp;amp; 改进方法汇总
  8. php 按行入读文件 返回数组
  9. TextBox的OnTextboxChanged事件里对Text重新赋值带中文, 导致崩溃
  10. qcustomplot 游标吸附_QCustomplot使用分享(九) 绘制图表-多功能游标
  11. vasp计算脚本放在服务器的位置,vasp计算所需服务器配置
  12. SQL查询实现差集(补集)运算
  13. 【孵化器系列采访】创新工场:高端人才成功创业的聚集地
  14. 梦想在远方,理想在路上
  15. phpmywind调用方法大全
  16. html5 摇骰子游戏,html5 canvas掷骰子(简单,学习基础canvas)
  17. 【渝粤教育】电大中专电子商务网站建设与维护 (6)作业 题库
  18. linux查找文件或文件夹
  19. 常见通信信道仿真模型
  20. 世界上最远的距离_泰戈尔

热门文章

  1. 架构是什么?网络架构有什么?终于有人说清楚了
  2. 首次尝试编写博客 | GCT备考二战 | 编程与我
  3. 微信小程序——获取视频的URL地址【已解决】
  4. State Status
  5. MySQL高可用实战方案——MHA
  6. 【Python】Python实现isPrime() 函数(判断整数是否为素数),参数为整数,要有异常处理。
  7. python 爬虫遇到的aiohttp证书错误解决办法
  8. 考题:自定义组合view,如图三所示,包含昵称、头像和手机号
  9. Android调用相机拍照,照片被旋转的问题
  10. 遥感影像深度学习标注软件的开发要点