• xcode5 自定义模板


      经过一番周折,终于在xcode5上实现了一个简单的自定义模板,在项目中集成NSLogger库(增强NSLog的功能,https://github.com/fpillet/NSLogger)——新建项目中自动加入LoggerClient.h,LoggerClient.m ,LoggerCommon.h以及一些Frameworks。

      如果从零开始定义一个模板,未免太过复杂,最简单的方法就是把系统模板复制过来修改^_^。

      系统模板路径:

    //路径1
    Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates
    //路径2
    Xcode.app/Contents/Developer/Library/Xcode/Templates

      可以看到,两个路径下的模板都分为File Templates和Project Templates两种。顾名思义,文件模板用于创建文件,项目模板用于创建项目,这里需要的是Project Templates。这里在Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/下找到Single View Application.xctemplate模板,复制到自定义模板路径下。

      自定义模板的存放位置:

    ~/Library/Developer/Xcode/Templates

      如果之前安装过cocos2d,那么在上面路径下就可以看到cocos2d的库文件。借鉴cocos2d和PhoneGap的做法,把Single View Application.xctemplate放在路径3下:

    //路径3
    ~/Library/Developer/Xcode/Templates/Project Templates/Application

      然后需要两步:

        --把Single View Application.xctemplate文件夹名称改为xxx.xctemplate,后缀名必须为xctemplate,这里以Test Template.xctemplate为例。

        --打开Test Template.xctemplate中的TemplateInfo.plist文件,将键Identifier的值改为com.apple.dt.unit.testTemplateApplication,这个值是模板的唯一标识。

         保存更改后,在new project的templates dialog中就可以看到刚刚定义的模板了:

        

         此时Test Template模板与系统的Single View Application模板是一样,要想进行自定义,我们先来分析下Test Template.xctemplate的组成。

        --TemplateInfo.plist(必要):所有的模板属性设置都在这里。

        --TemplateIcon.tiff(可选):定义显示在new project的dialog中的模板图标。

        -- Main_iPhone.storyboard、Main_iPad.storyboard:要添加在项目中的文件。

      所以这里我们把NSLogger的库文件放到Test Template.xctemplate下:

         此时新建Test Template项目,肯定是不会自动添加上NSLogger文件的,看来还需要在TemplateInfo.plist中设置一番。

         打开TemplateInfo.plist,先来分析一下各个键值的意义:

     

      Ancestors:要继承的模板。也就是模板的“父类”,从父类那里继承一些模板的基础属性,可以有多个父类。

      Concrete:设置为YES的模板才可以显示在new project的dialog中,此时这个模板不能被其他模板继承。

      Definitions:将Nodes中定义的文件添加到项目中(还有其他功能,这里暂且不表)。

      Description:就是Description。

      Identifier:刚才已经接触过,模板的唯一标示符,若模板B要继承模板A,就在模板B的Ancestors中写上模板A的Identifier。

      Kind:项目模板为Xcode.Xcode3.ProjectTemplateUnitKind,文件模板为Xcode.IDEKit.TextSubstitutionFileTemplateKind。

      Nodes:定义要添加到项目中的文件(还有其他功能,这里暂且不表)。

      Options:定义在new project中选择模板后点击next后的dialog中的内容,如Product Name、Organization Name、Company Identifier、Bundle Identifier等。

      SortOrder:该模板显示在new project的dialog中的位置索引。

         更详细的解释会在后面给出链接。

              

         回头看下我们的需求:在新建项目中自动加入LoggerClient.h,LoggerClient.m ,LoggerCommon.h以及一些Frameworks。那么首先编辑的键值就是Nodes、Definitions。    

      Nodes编辑如下:

         Definitions编辑如下:

         需要注意的是这里LoggerClient.h,LoggerClient.m ,LoggerCommon.h三个文件都是放在NSLogger文件夹下的。

         保存plist修改,此时新建Test Template项目,可以看到已经自动添加上了NSLogger类了。

         还有一步工作,需要在项目中添加上NSLogger库要求的Frameworks。很简单,在plist中加入一个key ——Targets。

         保存plist后,新建Test Template项目,完工。附上TemplateInfo.plist以供参考。

        

         最后附上参考资料:http://www.learn-cocos2d.com/store/xcode4-template-documentation/里面详细的介绍文件模板和项目模板(Xcode4的方法适用与xcode5),以及TemplateInfo.plist中各个键值的意义。感谢这篇文章的作者。

    作者:PowerAuras
    出处:http://www.cnblogs.com/powerauras/
    转载请注明出处及作者的署名。
  • 相关阅读:
    数据库面试题
    网络编程_TCP协议_客户端与服务端
    29-街道最短路径问题(哈曼顿距离)
    60-安慰奶牛(最小生成树)
    20-集合问题(并查集)
    59-算法训练 操作格子 (线段树)
    58-最小乘积(基本型)
    11-vector的使用
    20-取石子动态规则(hdu2516 斐波那契博弈)
    19-格子游戏(hdu2147博弈)
  • 原文地址:https://www.cnblogs.com/powerauras/p/3358129.html
Copyright © 2020-2023  润新知