Objective c 如何在Xcode中使用Doxygen?

Objective c 如何在Xcode中使用Doxygen?,objective-c,xcode,core-data,doxygen,Objective C,Xcode,Core Data,Doxygen,我正在尝试将Doxygen与Xcode一起使用。我跟着火车走。在几个错误之后,我构建了项目并生成了文档。我发现,如果您从doxygen保存doxygen.config,并在目录名中使用空格“”,则会出现问题和其他问题 但还有最后一个问题: ./search/search.png ./tab_b.gif ./tab_l.gif ./tab_r.gif ./tabs.css /Developer/usr/bin/docsetutil index com.mycompany.DoxygenExampl

我正在尝试将Doxygen与Xcode一起使用。我跟着火车走。在几个错误之后,我构建了项目并生成了文档。我发现,如果您从doxygen保存doxygen.config,并在目录名中使用空格“”,则会出现问题和其他问题

但还有最后一个问题:

./search/search.png
./tab_b.gif
./tab_l.gif
./tab_r.gif
./tabs.css
/Developer/usr/bin/docsetutil index com.mycompany.DoxygenExample.docset
2010-03-31 12:30:53.847 docsetutil[46338:807] Error converting XML to CoreData: Error Domain=NSXMLParserErrorDomain Code=76 UserInfo=0x1247d0 "Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node
"
Failed to create docset indexer object
make: *** [docset] Error 1
load documentation set with path "/Users/WB/Library/Developer/Shared/Documentation/DocSets/"
我不知道是什么问题??有什么想法吗


我使用的是核心数据-sqlite。

所以长话短说,脚本会动态创建一个Doxyfile,并且不会递归扫描所有子目录

请看这篇文章:


第二篇文章中有一个脚本基于苹果的脚本,不应该有这个问题。

我使用上述脚本的扩展版本,但基于相同的原则。虽然这一次在另一个项目上一切正常,但我的脚本失败了。 docset的生成工作正常,但make命令会产生以下错误

x ./search/search_r.png
2010-07-26 17:36:01.815 docsetutil[8441:903] 
Error converting XML to CoreData: 
Error Domain=NSXMLParserErrorDomain 
Code=76 
UserInfo=0x1006105e0 
"Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node"
Failed to create docset indexer object
make: *** [docset] Error 1
我使用的make命令是:
make--silent-C“$DOCSET\u OUTPUT/html”install

为了可读性,我在错误消息中添加了换行符。

解析器告诉您XML格式不正确,但通常会显示该错误,因为在运行docsetutil之前没有生成任何内容

第一件事应该是检查控制台输出的许多行,并查找警告,可能存在。还要查找生成的文档集,然后右键单击>显示内容。如果在文档中看不到很多html文件,同样的事情是:生成文档失败,docsetutil与此无关。顺便说一句,使用CoreData的是docsetutil,不管您是否在项目中使用它


我不明白为什么苹果不提供一个更紧密集成的类似强氧剂的工具。或者比Crustify更好的代码格式化程序。拿着这些该死的工具,改进一下。啊

Doxygen生成Nodes.xml时存在已知错误。此处引用了它,并应在下一个doxygen版本(版本1.8.0后)中进行更正:

在Nodes.xml的末尾,还有一个

-silent选项是抑制错误的变通方法,但此参数不允许dosetgeneration正常工作

$DOXYGEN_PATH $TEMP_DIR/doxygen.config

make -C $TEMP_DIR/DoxygenDocs.docset/html install
插入以下代码

注意:该脚本在$TEMP_DIR中工作,而不是像AppleScript一样在SOURCE_ROOT中工作

$DOXYGEN_PATH $TEMP_DIR/doxygen.config

#  make will invoke docsetutil. Take a look at the Makefile to see how this is done.


LINE=`xmllint  --c14n $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml 2>&1  |  awk 'NR == 1 {print $1}' | cut -d':' -f 2`

ECHO $LINE

if [ $LINE -gt 0 ]
then 
echo "XML Cleaning "
sed  -i.bak $LINE'd'  $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml

fi 

make -C $TEMP_DIR/DoxygenDocs.docset/html install
注意:awk和sed当然可以合并在一条线上