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中各個鍵值的意義。感謝這篇文章的作者。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM