一、為什么要自定義模板
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
二、模板存放位置
Xcode模板主要分為2種,系統(tǒng)默認模板和用戶自定模板,對iOS App開發(fā)者而言,一般用到的是系統(tǒng)模板中的/Applications/Xcode.app/Contents/Developer/Platforms
目錄下的iPhoneOS.platform
中的模板
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 Templates
,Project Templates
2個文件夾,分別代表文件模板
和工程模板
目錄。
三、如何速創(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 Application
、category
、protocol
等模板
現成下載: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
文件夾
將原來XCode6中的“Empty Application”模板拷貝過來(可以從上文提到的Github中下載),修改增加一些必要字段。
Plist文件內容如下圖
PS:基于標簽欄和導航欄工程模板文件相關內容詳見文末Github
相關字段含義查閱3.1
使用CustomTemplate中的nav模板創(chuàng)建后如下:
你也可以根據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點,里面內容不僅僅是所見的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
當然你也可以直接使用以下工具進行一鍵拷貝
使用方法簡介:(以CustomTemplate為例)
1、輸入模板git地址
2、點擊“下載”
3、選擇菜單“工程模板”
4、點擊“一鍵拷貝”
然后新建工程即可看到模板:
下載地址
Github
自定義示例模板下載
模板下載克隆工具 文件大小: 95kb