有什么好的Xcode脚本可以加快开发速度?

编程入门 行业动态 更新时间:2024-10-11 11:13:14
本文介绍了有什么好的Xcode脚本可以加快开发速度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

Xcode允许您创建自动脚本来执行重复性任务.您编写了哪些脚本来加快开发速度?

Xcode allows you to create automated scripts for performing repetitive tasks. What scripts have you written to speed up development?

推荐答案

我为我的可可和iPhone的JSON.Framework .这些将照顾以下内容:

I've created three for my JSON.Framework for Cocoa and the iPhone. These take care of the following:

  • 在其中创建具有动态嵌入式框架,自定义iPhone SDK,API文档和一些文档文件的发行磁盘映像.
  • 在源上运行Doxygen以创建与Xcode兼容的文档集并进行安装.这意味着当您在Xcode的文档搜索中搜索内容时,也可以找到您的文档.
  • 在源代码上运行Doxygen以更新源代码树本身中的API文档的已检入版本.如果您使用Subversion(它假定),这非常好用,因为该文档始终是您所在分支的最新文档.例如,如果您托管在Google Code上,那就太好了.

请注意以下一些针对项目的硬编码值.我不想通过编辑脚本来破坏脚本.这些是从Xcode中的自定义脚本阶段启动的.您可以在上面链接的项目中看到它们如何集成到Xcode项目中.

Beware some hard-coded project-specific values in the below. I didn't want to potentially break the scripts by editing those out. These are launched from a Custom Script Phase in Xcode. You can see how they're integrated in the Xcode project for the project linked above.

CreateDiskImage.sh:

CreateDiskImage.sh:

#!/bin/sh set -x # Determine the project name and version VERS=$(agvtool mvers -terse1) # Derived names VOLNAME=${PROJECT}_${VERS} DISK_IMAGE=$BUILD_DIR/$VOLNAME DISK_IMAGE_FILE=$INSTALL_DIR/$VOLNAME.dmg # Remove old targets rm -f $DISK_IMAGE_FILE test -d $DISK_IMAGE && chmod -R +w $DISK_IMAGE && rm -rf $DISK_IMAGE mkdir -p $DISK_IMAGE # Create the Embedded framework and copy it to the disk image. xcodebuild -target JSON -configuration Release install || exit 1 cp -p -R $INSTALL_DIR/../Frameworks/$PROJECT.framework $DISK_IMAGE IPHONE_SDK=2.2.1 # Create the iPhone SDK directly in the disk image folder. xcodebuild -target libjson -configuration Release -sdk iphoneos$IPHONE_SDK install \ ARCHS=armv6 \ DSTROOT=$DISK_IMAGE/SDKs/JSON/iphoneos.sdk || exit 1 sed -e "s/%PROJECT%/$PROJECT/g" \ -e "s/%VERS%/$VERS/g" \ -e "s/%IPHONE_SDK%/$IPHONE_SDK/g" \ $SOURCE_ROOT/Resources/iphoneos.sdk/SDKSettings.plist > $DISK_IMAGE/SDKs/JSON/iphoneos.sdk/SDKSettings.plist || exit 1 xcodebuild -target libjson -configuration Release -sdk iphonesimulator$IPHONE_SDK install \ ARCHS=i386 \ DSTROOT=$DISK_IMAGE/SDKs/JSON/iphonesimulator.sdk || exit 1 sed -e "s/%PROJECT%/$PROJECT/g" \ -e "s/%VERS%/$VERS/g" \ -e "s/%IPHONE_SDK%/$IPHONE_SDK/g" \ $SOURCE_ROOT/Resources/iphonesimulator.sdk/SDKSettings.plist > $DISK_IMAGE/SDKs/JSON/iphonesimulator.sdk/SDKSettings.plist || exit 1 # Allow linking statically into normal OS X apps xcodebuild -target libjson -configuration Release -sdk macosx10.5 install \ DSTROOT=$DISK_IMAGE/SDKs/JSON/macosx.sdk || exit 1 # Copy the source verbatim into the disk image. cp -p -R $SOURCE_ROOT/Source $DISK_IMAGE/$PROJECT rm -rf $DISK_IMAGE/$PROJECT/.svn # Create the documentation xcodebuild -target Documentation -configuration Release install || exit 1 cp -p -R $INSTALL_DIR/Documentation/html $DISK_IMAGE/Documentation rm -rf $DISK_IMAGE/Documentation/.svn cat <<HTML > $DISK_IMAGE/Documentation.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <script type="text/javascript"> <!-- window.location = "Documentation/index.html" //--> </script> </head> <body> <p>Aw, shucks! I tried to redirect you to the <a href="Documentaton/index.html">api documentation</a> but obviously failed. Please find it yourself. </p> </body> </html> HTML cp -p $SOURCE_ROOT/README $DISK_IMAGE cp -p $SOURCE_ROOT/Credits.rtf $DISK_IMAGE cp -p $SOURCE_ROOT/Install.rtf $DISK_IMAGE cp -p $SOURCE_ROOT/Changes.rtf $DISK_IMAGE hdiutil create -fs HFS+ -volname $VOLNAME -srcfolder $DISK_IMAGE $DISK_IMAGE_FILE

InstallDocumentation.sh:

InstallDocumentation.sh:

#!/bin/sh # See also developer.apple/tools/creatingdocsetswithdoxygen.html set -x VERSION=$(agvtool mvers -terse1) DOXYFILE=$DERIVED_FILES_DIR/doxygen.config DOXYGEN=/Applications/Doxygen.app/Contents/Resources/doxygen DOCSET=$INSTALL_DIR/Docset rm -rf $DOCSET mkdir -p $DOCSET || exit 1 mkdir -p $DERIVED_FILES_DIR || exit 1 if ! test -x $DOXYGEN ; then echo "*** Install Doxygen to get documentation generated for you automatically ***" exit 1 fi # Create a doxygen configuration file with only the settings we care about $DOXYGEN -g - > $DOXYFILE cat <<EOF >> $DOXYFILE PROJECT_NAME = $FULL_PRODUCT_NAME PROJECT_NUMBER = $VERSION OUTPUT_DIRECTORY = $DOCSET INPUT = $SOURCE_ROOT/Source FILE_PATTERNS = *.h *.m HIDE_UNDOC_MEMBERS = YES HIDE_UNDOC_CLASSES = YES HIDE_UNDOC_RELATIONS = YES REPEAT_BRIEF = NO CASE_SENSE_NAMES = YES INLINE_INHERITED_MEMB = YES SHOW_FILES = NO SHOW_INCLUDE_FILES = NO GENERATE_LATEX = NO GENERATE_HTML = YES GENERATE_DOCSET = YES DOCSET_FEEDNAME = "$PROJECT.framework API Documentation" DOCSET_BUNDLE_ID = org.brautaset.$PROJECT EOF # Run doxygen on the updated config file. # doxygen creates a Makefile that does most of the heavy lifting. $DOXYGEN $DOXYFILE # make will invoke docsetutil. Take a look at the Makefile to see how this is done. make -C $DOCSET/html install # Construct a temporary applescript file to tell Xcode to load a docset. rm -f $TEMP_DIR/loadDocSet.scpt cat <<EOF > $TEMP_DIR/loadDocSet.scpt tell application "Xcode" load documentation set with path "/Users/$USER/Library/Developer/Shared/Documentation/DocSets/org.brautaset.${PROJECT}.docset/" end tell EOF # Run the load-docset applescript command. osascript $TEMP_DIR/loadDocSet.scpt

RegenerateDocumentation.sh:

RegenerateDocumentation.sh:

#!/bin/sh # See also developer.apple/tools/creatingdocsetswithdoxygen.html set -x VERSION=$(agvtool mvers -terse1) DOXYFILE=$DERIVED_FILES_DIR/doxygen.config DOXYGEN=/Applications/Doxygen.app/Contents/Resources/doxygen DOCSET=$INSTALL_DIR/Documentation APIDOCDIR=$SOURCE_ROOT/documentation rm -rf $DOCSET mkdir -p $DOCSET || exit 1 mkdir -p $DERIVED_FILES_DIR || exit 1 if ! test -x $DOXYGEN ; then echo "*** Install Doxygen to get documentation generated for you automatically ***" exit 1 fi # Create a doxygen configuration file with only the settings we care about $DOXYGEN -g - > $DOXYFILE cat <<EOF >> $DOXYFILE PROJECT_NAME = $FULL_PRODUCT_NAME PROJECT_NUMBER = $VERSION OUTPUT_DIRECTORY = $DOCSET INPUT = $SOURCE_ROOT/Source FILE_PATTERNS = *.h *.m HIDE_UNDOC_MEMBERS = YES HIDE_UNDOC_CLASSES = YES HIDE_UNDOC_RELATIONS = YES REPEAT_BRIEF = NO CASE_SENSE_NAMES = YES INLINE_INHERITED_MEMB = YES SHOW_FILES = NO SHOW_INCLUDE_FILES = NO GENERATE_LATEX = NO GENERATE_HTML = YES GENERATE_DOCSET = NO EOF # Run doxygen on the updated config file. $DOXYGEN $DOXYFILE # Replace the old dir with the newly generated one. rm -f $APIDOCDIR/* cp -p $DOCSET/html/* $APIDOCDIR cd $APIDOCDIR # Revert files that differ only in the timestamp. svn diff *.html | diffstat | awk '$3 == 2 { print $1 }' | xargs svn revert # Add/remove files from subversion. svn st | awk ' $1 == "?" { print "svn add", $2 } $1 == "!" { print "svn delete", $2 } ' | sh - svn propset svn:mime-type text/html *.html svn propset svn:mime-type text/css *.css svn propset svn:mime-type image/png *.png svn propset svn:mime-type image/gif *.gif

更多推荐

有什么好的Xcode脚本可以加快开发速度?

本文发布于:2023-10-26 17:32:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1530847.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有什么   脚本   速度   Xcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!