iOS自定義Xcode模板

一、為什么要自定義模板

1.節(jié)省重復代碼手寫時間
2.統(tǒng)一規(guī)范代碼,提高代碼可讀性
3.減少手寫代碼,XIB或修改相關配置等不必要的時間

如我們要求所有的viewController的代碼都得按照一下代碼結構來寫:

#pragma mark - def
#pragma mark - override
#pragma mark - api
#pragma mark - model event 
#pragma mark - view event
#pragma mark - private
#pragma mark - getter / setter

iOS代碼編程規(guī)范-根據項目經驗匯總

二、模板存放位置

Xcode模板主要分為2種,系統(tǒng)默認模板和用戶自定模板,對iOS App開發(fā)者而言,一般用到的是系統(tǒng)模板中的/Applications/Xcode.app/Contents/Developer/Platforms目錄下的iPhoneOS.platform中的模板

1.png

1、Xcode系統(tǒng)模板位置

(1) iOS開發(fā)系統(tǒng)模板位置

  • 里面包含文件模板(File Templates)和工程模板(Project Templates)
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates

(2) MacOSX的系統(tǒng)文件模板位置

/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates

2.用戶自定義模板位置
~/Library/Developer/Xcode/Templates

終端命令打開文件目錄

cd ~/Library/Developer/Xcode/Templates //進入目錄
open .                               //打開目前目錄
等價于
open ~/Library/Developer/Xcode/Templates

或者點擊Finder菜單欄的前往>前往文件夾(shift + command + G) ,
輸入:~/Library/Developer/Xcode/Templates

會看到File TemplatesProject Templates2個文件夾,分別代表文件模板工程模板目錄。

三、如何速創(chuàng)建、修改Xcode模板

Xcode沒有提供直接的工具或者是向導給你創(chuàng)建一個工程模板,,但是我們可以找到Xcode內置的幾個模板,這里以iPhone開發(fā)為說明,介紹模板的創(chuàng)建修改過程.

iOS模板目錄

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates

終端命令打開方式

open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates

或者點擊Finder菜單欄的前往>前往文件夾(shift + command + G)

輸入:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates

1)基于現成模板修改或使用

拷貝iOS系統(tǒng)模板目錄中的模板進行修改。

為Xcode添加Empty Applicationcategoryprotocol等模板

現成下載:https://github.com/NSFish/AddMissingTemplates

? https://github.com/ChenYilong/XcodeMissingTemplates

也可以利用AlcaAtraz安裝相關模板,shift+command+9 >Templates模板

推薦:https://github.com/zubco/PZCustomView

復制模板文件夾到用戶自定義模板目錄 ~/Library/Developer/Xcode/Templates/ ,重啟即可

2)完全自定義模板
例如創(chuàng)建一個帶有導航欄和標簽欄控制器的工程
1、進入模板目錄
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS

2、手動創(chuàng)建CustomTemplate文件夾

3.png

將原來XCode6中的“Empty Application”模板拷貝過來(可以從上文提到的Github中下載),修改增加一些必要字段。
Plist文件內容如下圖


2.png

PS:基于標簽欄和導航欄工程模板文件相關內容詳見文末Github
相關字段含義查閱3.1

使用CustomTemplate中的nav模板創(chuàng)建后如下:


x5.png
x6.png

你也可以根據plist文件根據自己需要添加更多的文件,比如配置文件、工具類,基礎類等,這樣每次創(chuàng)建工程的時候就不需要寫相關代碼了,也不必手動拖進一些文件到工程里,達到一勞永逸的效果.

3.1 Xcode模板 文件宏

占位符 意義
___FILENAME___ 文件名包括后綴
___PROJECTNAME___ 當前工程名,在創(chuàng)建工程時設置的
___FULLUSERNAME___ 當前登錄用戶的名字
___DATE___ 當前日期 ,格式為MM/DD/YY
___FILEBASENAMEASIDENTIFIER___ 不帶后綴的文件名
___projectnameasidentifier___ 項目名稱轉換為有效的C風格的標識符
___organizationname___ 在Xcode項目定義的組織名稱
___time___ 當前時間
___year___ 前四位數的年份

From:http://see.sl088.com/wiki/Xcode%E6%A8%A1%E6%9D%BF_%E6%96%87%E4%BB%B6%E5%AE%8F

3.2文件組成
--TemplateInfo.plist(必要):所有的模板屬性設置都在這里。
--TemplateIcon.tiff(可選):定義顯示在new project的dialog中的模板圖標。
-- Main_iPhone.storyboard、Main_iPad.storyboard:要添加在項目中的文件。

3.3TemplateInfo.plist字段詳解

  • Kind(必須) 模板類型
    Xcode.Xcode3.ProjectTemplateUnitKind --指定該模板是工程(項目)模板
    Xcode.IDEFoundation.TextSubstitutionFileTemplateKind --指定該模板是文件模板
  • SortOrder 這個是排序的值,該模板顯示在new project的dialog中的位置索引,可以設置在界面中的擺放位置,值越小越前面
  • Ancestors:要繼承的模板。也就是模板的“父類”,從父類那里繼承一些模板的基礎屬性,可以有多個父類。
  • Concrete:設置為YES的模板才可以顯示在new project的dialog中,此時這個模板不能被其他模板繼承。
  • Description:就是Description描述信息。
  • Identifier:模板的唯一標示符,若模板B要繼承模板A,就在模板B的Ancestors中寫上模板A的Identifier。
  • Nodes:定義要添加到項目中的文件,目標結構節(jié)點。
  • Definitions:將Nodes中定義的文件添加到項目中(相關.h/.m文件)。
  • Options:定義在new project中選擇模板后點擊next后的dialog中的內容,如Product Name、Organization Name、Company Identifier、Bundle Identifier等。
  • 在Suffixes里面添加自定義的模板類的類名以及模板類所繼承的類名

文件模板

至于文件模板,可以拷貝系統(tǒng)默認模板到文件模板目錄根據以上釋義進行修改,也可以根據自己喜好直接修改系統(tǒng)模板,修改很簡單,你就放肆的修改吧,一般不會出現什么問題,即使出現問題,大不了重裝下Xcode啦,這樣每次創(chuàng)建相應文件就可以自動添加相應的代碼了,這樣別人代碼編寫速度再快,也趕不上你的速度,簡單而實用。

四、其它應用實例

iOS開發(fā)網絡適配https,修改模板方式解決
iOS9讓所有的HTTP默認使用了HTTPS,App無法正常訪問HTTP鏈接。
1、常規(guī)解決方法
iOS9 HTTP 不能正常使用的解決辦法
2、Xcode模板修改步驟
步驟1、:進入工程模板目錄或直接打開編輯

open  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application/Cocoa\ Touch\ Application\ Base.xctemplate/TemplateInfo.plist

編輯Cocoa Touch Application Base.xctemplate/TemplateInfo.plist文件

步驟2、添加key&value值

  • 在Nodes中增加一個item, 值(右側)設置為Info.plist:NSAppTransportSecurity 。

  • 在Definitions字段下增加item, 鍵(左側)設置為Info.plist:NSAppTransportSecurity ,值(右側)設置為

    <key>NSAppTransportSecurity</key>
    <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    </dict>
    
4.png

注意第4點,里面內容不僅僅是所見的NSAppTransportSecurity,包含以上字典所有內容

Github CustomTemplate

下載安裝:
打開/ios文件目錄,將UITbaBar&Nav.xctemplate模板放置在CustomTemplate目錄,如上圖3.png所示

open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application/Cocoa\ Touch\ Application\ Base.xctemplate/TemplateInfo.plist

當然你也可以直接使用以下工具進行一鍵拷貝


XCode模板克隆工具

使用方法簡介:(以CustomTemplate為例)
1、輸入模板git地址
2、點擊“下載”
3、選擇菜單“工程模板”
4、點擊“一鍵拷貝”

然后新建工程即可看到模板:


image.png

下載地址
Github 自定義示例模板下載

模板下載克隆工具 文件大小: 95kb

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容