为了帮助简化调试的一些自定义的Objective-C对象在Xcode调试窗口,我会为每个对象的一组数据格式化字符串,使用相关的苹果文档和Xcode的内置数据格式化为指导。
我的自定义摘要字符串工作的伟大,如果我把它放在/开发/库/ Xcode中/ CustomDataViews /有与Xcode中附带的数据格式化。 但是,我宁愿不会这样做的,因为用户可能没有写权限到该目录中,并混合自定义格式与内置的那些可能会造成混淆。 同样,加入我自己的记录到〜/库/应用程序支持/苹果/开发工具/ CustomDataViews / CustomDataViews.plist也可以,但是该文件是为覆盖默认用户定义的值,它的条目由在变化重挫Xcode调试GUI。 我真正想要的是能够把我的数据格式文件的位置,这样的Xcode识别它们,但如果需要,用户仍然可以选择重写我的设置(在另一个文件)。
问题是,当我创建一个包(以下的例子这款苹果示例代码 )并安装它(在/开发/库/ Xcode中/ CustomDataViews /或任何库/应用程序支持/苹果/开发工具/ CustomDataViews /路径) ,Xcode中无法识别或使用自定义格式。
上的数据格式器束的细节的文档是有些疏(主要是在Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin一个头文件),可能是因为功能不是Xcode中的标题的功能之一。 ;-) 任何帮助将不胜感激。
我最近能回来这一点,我相信我已经找到了答案。
我已经知道数据格式化束必须包括内部的属性列表文件,命名为“ 内容/资源/ *。plist中 ”。 然而,对于束实际工作外, 还必须包括具有相同名称在目录/ MacOS的/目录下的包的可执行文件 。 据我所知,即使是完全空foo.c
为您编译和链接二进制文件是足够长。 我甚至没有触摸的Info.plist在Xcode的股票CFPlugin包项目,只包括CustomDataViews.plist目标资源。
因为我并不需要定义的C函数来显示任何我负责的,最容易的办法是干脆把plist文件中的对象和结构的(任何名字都行-我的是CHDataStructures.plist
)成一个两个位置:
-
~/Library/Application Support/Developer/Shared/Xcode/CustomDataViews/
-
/Library/Application Support/Developer/Shared/Xcode/CustomDataViews/
简单的plist文件更小,小事创建,并更容易修改。 此外,使用束时不同,没有重新发起的Xcode当我添加,删除或修改的plist中; 刚开始一个新的调试会话足以引起新的对数据格式进行更新。 我想,我只是创建一个包,因为这是示例代码中显示,但我不能确定我的方案的任何优势,所以我用的plist坚持。
由于的Xcode 2.5和3.0的,这样的事情的位置已经改变,以支持一个系统上的Xcode共存的多个版本。 你应该把你的自定义数据格式到目录“ Library/Application Support/Developer/Shared/CustomDataViews
”无论是在本地( /
)或用户( ~
)域; 那么他们应该会在您推出的Xcode的下一次。
该Shared
的路径上面可以是一个版本号,如3.0
或3.1
,如果你正在创建特定于某个版本的Xcode的东西。