如何在Xcode 4中创build项目模板
它很难find一个教程来做到这一点,因为大多数信息与Xcode 3有关。下面的答案可能会帮助一些人。
我从以下网站获取了大部分我的信息,以获得以下答案:
- http://meandmark.com/blog/2011/12/creating-custom-xcode-4-project-templates/
- http://www.bobmccune.com/2012/03/04/creating-custom-xcode-4-file-templates/
我花了几个小时在网上search有关这样做的信息。 其实并不是很难为Xcode4.5设置项目模板,但很难在Web上find将所有信息放在一起的信息! 希望以下步骤将帮助您创build自己的。
configuration
- 首先获取一个现有的Xcode项目模板的副本作为基础。 打开查找器,转到应用程序,右键单击Xcode显示包内容。 导航到Contents / Developer / Platforms / iPhoneOS.platform / Developer / Library / Xcode / Templates / Project Templates / Application /
[编辑]在Xcode 5中,path如下:〜/ Library / Developer / Xcode / Templates / Application / Project Templates。 如果模板/应用程序/项目模板不存在,您也应该创build它。 感谢seufagner在下面的评论中的更新,虽然我没有尝试过这个我自己。 [/编辑]
- 复制 (不要剪切/粘贴!)列出的模板之一。
- 打开另一个finder窗口,并导航到以下目录(取消隐藏你的Library文件夹在terminal键入这个命令:chflags nohidden〜/ Library /或者当点击Finder / Go时按下alt / option键)/ Library / Developer / Xcode /模板(您可能需要创build此文件夹(如果尚不存在)/项目模板/
- 在这里创build一个文件夹。 你可以任意调用它,build议是你的公司名称。 这个名字出现在Xcode的新项目对话框的左侧菜单中。 例如在我称之为我的Appscore的附加图像中,还有另一个用于cocoas2d的图像。
- 将项目模板粘贴到此处,并将其文件夹名称更改为您希望的任何内容,例如MySuperProjectTemplate.xctemplate。 我们还没有完成,因为我们需要更改模板的标识符。 否则它不会出现在Xcode的新build项目对话框中。
- 在TextEdit中打开TemplateInfo.plist文件。 search标识符键。 你应该看到一个类似于“com.apple.dt.unit.XXXXXX”的string值。 把它replace成你所希望的,只要它是唯一的。 我再次build议添加您的公司名称和描述模板的名称。
- 如果您现在打开Xcode,则应在新的项目对话框中看到项目模板出现在公司名称下。
定制
目前你有一个不是很有用的现有项目模板的副本。 我猜你有几个类可以在几乎所有的项目中重用? 我们如何将他们纳入这个模板?
- 复制你想要的文件,并粘贴到你的新项目模板,即导航到/库/开发/ Xcode /模板/项目模板/ / MySuperProjectTemplate.xctemplate /
-
再次在TextEdit中打开TemplateInfo.plist文件。 首先我们要做的是告诉项目模板包含新文件,以便search一个名为“节点”的键,该键具有一组值。 添加以下两行:
<string> _VARIABLE_classPrefix:identifier_ .h </ string> <string> _VARIABLE_classPrefix:identifier_ .m </ string>
例如,如果您的控制器被称为BaseViewController,那么这些行将如下所示:
<string> ___ VARIABLE_classPrefix:identifier ___ BaseViewController.h </ string> <string> ___ VARIABLE_classPrefix:identifier ___ BaseViewController.m </ string>
- 接下来findDefinitions键,你应该看到一个字典作为它的值。 在这里,我们必须添加一个对包含文件的引用。 创build一个新的键并调用___ VARIABLE_classPrefix:identifier ___ BaseViewController.h(以BaseViewController为例)。
- 这个键的值又是一个字典。 它包含一个名为Path的键和一个string值,它是文件名,例如BaseViewController.h
- 我附上了以下图片来展示我的意思,因为我认为我的描述不够完整。 您可能会注意到那里有一个叫做“Group”的关键字,正如您猜测的那样,您可以直接创build组和input文件:D
希望这对其他人有用:)任何问题下面的评论,我会尽我所能来回答。 几星期前我做了这个,所以我的记忆有点朦胧。
您还可以通过检查现有的项目模板学到很多东西,你可以在这里find:
/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/
为Mac和
/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/
为iOS 。
Reid Main在GitHub上也有很less的样例模板, Acani也有另外一个样例模板。 还有由Mattt Thompson创build的AFNetworking模板。 看到所有的例子,包括由苹果公司build立的例子,然后你可以开始创build自己的。
在plist文件中使用的所有variables的一个很好的概述可以在这里find: https : //gist.github.com/shazron/943736
@bennythemink你的答案真的非常有帮助,但我想在你的答案中添加更多的东西。 当我们复制Xcode预定义模板比这个键包含
<key>Ancestors</key> <array> <string>com.apple.dt.unit.storyboardApplication</string> </array>
这个值。 当我们在xcode的自定义模板中使用这个键值时,默认会创buildAppDelegate类。 我们不能移动到文件夹,我们可以把它转移到组。 所以我build议添加这个:
<key>Ancestors</key> <array> <string>com.apple.dt.unit.objectiveCApplication</string> <string>com.apple.dt.unit.iPhoneBase</string> <string>com.apple.dt.unit.prefixable</string> </array>
自定义模板中的值,这样我们就可以完全清空模板,在其中我们可以做任何自定义的东西。