創(chuàng)建項(xiàng)目,語(yǔ)言選擇Swift,Devices選擇Universal,使用Size Classes適配iPhone,iPad,實(shí)際項(xiàng)目一般是iPhone,iPad分開(kāi)按照設(shè)計(jì)開(kāi)發(fā)的,我們項(xiàng)目是用于學(xué)習(xí)目的的,所以就按照簡(jiǎn)單的來(lái),沒(méi)有用到Core Data.
Unit Tests代表XCTest,這是內(nèi)嵌到Xcode的測(cè)試框架,利用它可以對(duì)App進(jìn)行功能和性能測(cè)試,具體使用可以參考
http://www.cocoachina.com/industry/20140805/9314.html
UI Tests是一個(gè)自動(dòng)測(cè)試UI與交互的Testing組件,它可以通過(guò)編寫(xiě)代碼蜗搔、或者是記錄開(kāi)發(fā)者的操作過(guò)程并代碼化洼冻,來(lái)實(shí)現(xiàn)自動(dòng)點(diǎn)擊某個(gè)按鈕啊胶、視圖啤贩,或者自動(dòng)輸入文字等功能求类。具體使用可以參考
http://www.cocoachina.com/ios/20150925/13566.html
打開(kāi)項(xiàng)目
點(diǎn)擊項(xiàng)目->選擇General,配置項(xiàng)目的一些基本信息
Bundle Identifier:是應(yīng)用的標(biāo)識(shí)符矫膨,表明應(yīng)用和其他App的區(qū)別,上傳到App Store時(shí)候需要,一般為企業(yè)的域名倒寫(xiě)
Version:通常說(shuō)的版本號(hào), 是應(yīng)用向用戶宣傳說(shuō)明時(shí)候用到的標(biāo)識(shí). 一般有2段或者3段式, 如:2.1,8.1.2,一般由產(chǎn)品部門確定, 完全迥異的更新需要改變主版本號(hào), 比如QQ 4.0的變化非常大, 主版本的變化會(huì)更加吸引用戶的眼球,所以有的應(yīng)用會(huì)頻繁的更新主版本號(hào), 比如FireFox 20.0. 兩段式的副版本號(hào)既包含小功能更新也會(huì)包含 bug 修復(fù)等,三段式副版本基本都是新功能添加和大問(wèn)題修復(fù),第三段則表示穩(wěn)定版本基本都是修復(fù) bug
Build:編譯號(hào)指一次唯一編譯標(biāo)識(shí),都是給內(nèi)部使用, 用來(lái)確定一個(gè)唯一版本. 與 Version 沒(méi)有太大聯(lián)系
Team:如果是團(tuán)隊(duì)協(xié)作開(kāi)發(fā),一般會(huì)給你分配一個(gè)郵箱的Team Account,用來(lái)生成證書(shū).
Deployment Target:設(shè)置為你所支持的最低的iOS版本,這就涉及到項(xiàng)目中的適配系統(tǒng)的問(wèn)題了,這方面Swift2.0做的非常好.
Devices:建議是如果你的App蝌诡,iPad版本跟iPhone版本的界面是差不多的溉贿,就做兼容iPad和iPhone的app,選擇Universal,否則就分開(kāi)做iPad版浦旱、iPhone版宇色。只有iPhone或者iPad版本就選擇相應(yīng)的版本.
Main Interface:主要用Storyboard開(kāi)發(fā)界面,啟動(dòng)后第一個(gè)加載這個(gè)Storyboard中的Initial View Controller
Devices Orientation:App支持的屏幕方向,這個(gè)根據(jù)實(shí)際項(xiàng)目需求配置,當(dāng)然也可以在代碼里面控制單個(gè)Controller的orientation.
Status Bar Style:App統(tǒng)一的狀態(tài)欄設(shè)置,也可以在代碼里面控制單個(gè)控制器的狀態(tài)欄.
App Icons Source:點(diǎn)擊小箭頭進(jìn)入設(shè)計(jì)界面,根據(jù)支持的設(shè)備和系統(tǒng)的不同會(huì)需要不同數(shù)量和分辨率的Icon圖片,點(diǎn)擊一張圖,右側(cè)欄的image可以看到需要的圖片Size和Scale,實(shí)際圖片的分辨率是Size * Scale得到的.
Lauch Image Source和Lauch Screen File:如果你需要支持8.0以前的系統(tǒng),那必須要用Lauch Image,配置和App Icons類似,8.0后新增加一種使用nib方式設(shè)計(jì)啟動(dòng)圖,這樣你只需要一張高清或者完全不需要圖片就可以制作非常精美的啟動(dòng)界面,減少設(shè)計(jì)的工作,同時(shí)也減少了App的體積.
Embedded Binaries: 如果導(dǎo)入的是動(dòng)態(tài)庫(kù),需要加到這里.
靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的區(qū)別
靜態(tài)庫(kù):這類庫(kù)的名字一般是.a,利用靜態(tài)函數(shù)庫(kù)編譯成的文件比較大,因?yàn)檎麄€(gè)函數(shù)庫(kù)的所有數(shù)據(jù)都會(huì)被整合進(jìn)目標(biāo)代碼中,他的優(yōu)點(diǎn)就顯而易見(jiàn)了宣蠕,即編譯后的執(zhí)行程序不需要外部的函數(shù)庫(kù)支持例隆,因?yàn)樗惺褂玫暮瘮?shù)都已經(jīng)被編譯進(jìn)去了。當(dāng)然這也會(huì)成為他的缺點(diǎn)抢蚀,因?yàn)槿绻o態(tài)函數(shù)庫(kù)改變了镀层,那么你的程序必須重新編譯。
動(dòng)態(tài)庫(kù):這類庫(kù)的名字一般是后綴是.framework相對(duì)于靜態(tài)函數(shù)庫(kù)皿曲,動(dòng)態(tài)函數(shù)庫(kù)在編譯的時(shí)候 并沒(méi)有被編譯進(jìn)目標(biāo)代碼中唱逢,你的程序執(zhí)行到相關(guān)函數(shù)時(shí)才調(diào)用該函數(shù)庫(kù)里的相應(yīng)函數(shù),因此動(dòng)態(tài)函數(shù)庫(kù)所產(chǎn)生的可執(zhí)行文件比較小屋休。由于函數(shù)庫(kù)沒(méi)有被整合進(jìn)你的程序坞古,而是程序運(yùn)行時(shí)動(dòng)態(tài)的申請(qǐng)并調(diào)用,所以程序的運(yùn)行環(huán)境中必須提供相應(yīng)的庫(kù)劫樟。動(dòng)態(tài)函數(shù)庫(kù)的改變并不影響你的程序痪枫,所以動(dòng)態(tài)函數(shù)庫(kù)的升級(jí)比較方便。
動(dòng)態(tài)庫(kù)都可以用于不同應(yīng)用間共享叠艳,這就大大節(jié)省了內(nèi)存奶陈。從目前來(lái)看,iOS仍然不允許進(jìn)程間共享動(dòng)態(tài)庫(kù)附较,即iOS上的動(dòng)態(tài)庫(kù)只能是私有的吃粒,因?yàn)槲覀內(nèi)匀徊荒軐?dòng)態(tài)庫(kù)文件放置在除了自身沙盒以外的其它任何地方。 不過(guò)iOS8上開(kāi)放了App Extension功能拒课,可以為一個(gè)應(yīng)用創(chuàng)建插件声搁,這樣主app和插件之間共享動(dòng)態(tài)庫(kù)還是可行的。