欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

詳解iOSProject和Targets配置

最近開始學(xué)習(xí)完整iOS項(xiàng)目的開發(fā)流程和思路,在實(shí)際的項(xiàng)目開發(fā)過(guò)程中,我們通常需要對(duì)項(xiàng)目代碼和資料進(jìn)行版本控制和管理,一般比較常用的SVN或者Github進(jìn)行代碼版本控制和項(xiàng)目管理。我們iOS項(xiàng)目的開發(fā)工具Xcode本來(lái)就集成了Github的代碼控制,所以用GitHub會(huì)更方便一些,想具體了解Xcode和GitHub鏈接具體操作步驟的小伙伴可以戳這里:iOS學(xué)習(xí)——Xcode9上傳項(xiàng)目到GitHub。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了東昌府免費(fèi)建站歡迎大家使用!

創(chuàng)建完項(xiàng)目之后,我們?cè)賹?duì)一個(gè)項(xiàng)目進(jìn)行代碼開發(fā)之前,我們首先需要對(duì)iOS項(xiàng)目的開發(fā)環(huán)境進(jìn)行搭建,我們的應(yīng)用名稱、項(xiàng)目名稱、應(yīng)用圖標(biāo)、啟動(dòng)圖片等都是在這一步進(jìn)行設(shè)置的,所以這一部分是整個(gè)項(xiàng)目開發(fā)的基礎(chǔ),在后續(xù)的開發(fā)過(guò)程中也經(jīng)常會(huì)有些設(shè)置需要用到這里的步驟進(jìn)行修改。但是目前網(wǎng)上查到的資料都非常簡(jiǎn)短和零散,所以今天我們希望對(duì)Xcode上iOS項(xiàng)目搭建各種細(xì)節(jié)都進(jìn)行一個(gè)詳盡的了解和學(xué)習(xí)。

一 Project 和 Targets區(qū)別

首先,iOS項(xiàng)目的開發(fā)環(huán)境搭建主要就是基于我們項(xiàng)目的Project 和 Targets進(jìn)行展開的。那么,這兩個(gè)東西到底是啥玩意呢?我們點(diǎn)擊我們的項(xiàng)目名,就會(huì)出現(xiàn)下圖所示的界面。從圖片中可以看到,在項(xiàng)目導(dǎo)航面板的右側(cè)面板上有藍(lán)色和紅色框所示的PROJECT和TARGETS兩部分。

詳解iOS Project和Targets配置

PROJECT和TARGETS到底是什么意思呢?簡(jiǎn)單解釋如下:

project:project是所有文件、資源、信息/配置的repository。一個(gè)project包含所有build your products所需的內(nèi)容并且維護(hù)他們之間關(guān)系。它可以包含多個(gè)targets。一個(gè)project為所有的target定義默認(rèn)的build setting(每一個(gè)target可以自定義它們的build setting,這些自定義的setting會(huì)覆蓋project默認(rèn)的build setting,這個(gè)在后面會(huì)講到)。  target:簡(jiǎn)單地說(shuō),target定義了project的編譯設(shè)置,確定了project中各種資源和代碼的編譯順序。每個(gè)target都唯一依賴于一個(gè)project,但是一個(gè)project中可以有多個(gè)targets,上圖所示的target就有2個(gè)(KLBaiSi、KLBaiSiTest),每一個(gè)的設(shè)置不同,但是同一時(shí)間里只有一個(gè)active Target,在編譯時(shí)我們可以選擇用哪一個(gè)target進(jìn)行編譯,具體操作選擇如下圖所示。一個(gè)Target和它的product可以和其他Target聯(lián)系,如果一個(gè)target build需要另一個(gè)target的“輸出”,可以說(shuō)成第一個(gè)target依賴第二個(gè)。如果這倆個(gè)target在同一個(gè)workspace,Xcode會(huì)發(fā)現(xiàn)他們的依賴關(guān)系,從而build the products按照特定的順序。這樣的關(guān)系被稱為“ implicit dependency.” 你也可以為倆個(gè)targets指定明確的target 依賴關(guān)系在build setting里面。例如,你可能build一個(gè)library和一個(gè)鏈接這個(gè)library的application(同一個(gè)workspace)。Xcode可以發(fā)現(xiàn)這種關(guān)系并且自動(dòng)build這個(gè)library first。然而,你如果要去鏈接library的某個(gè)版本而不是one built in the workspace,你可以在build settings里創(chuàng)建一個(gè)確定的依賴關(guān)系,它將會(huì)覆蓋implicit dependency。

詳解iOS Project和Targets配置

詳解iOS Project和Targets配置

二 project和target的屬性設(shè)置

關(guān)于project和target的屬性設(shè)置,如下圖所示就是project和target的屬性設(shè)置界面,左邊是project的屬性設(shè)置界面,右邊是target的屬性設(shè)置界面。相對(duì)而言project的比較簡(jiǎn)單,只有info和build setting兩項(xiàng),畢竟只是對(duì)項(xiàng)目資源進(jìn)行簡(jiǎn)單的設(shè)置,而target的設(shè)置則比較復(fù)雜,有g(shù)eneral、capabilities、resource tags、 info、build setting、build phases和build rules七項(xiàng),因?yàn)閠arget的每一項(xiàng)設(shè)置都直接決定了我們最終App的顯示效果。下面我們就一一來(lái)學(xué)習(xí)和了解各個(gè)界面的設(shè)置有什么作用。

詳解iOS Project和Targets配置   

詳解iOS Project和Targets配置

2.1 project屬性設(shè)置

project的屬性設(shè)置有兩塊內(nèi)容,info和build setting,但是project的build setting和target的build setting之間是相關(guān)的,target的build setting的一部分設(shè)置會(huì)繼承project的build setting部分。所以,project的build setting部分內(nèi)容就放在2.2target屬性設(shè)置部分進(jìn)行統(tǒng)一講解,本小節(jié)就主要了解project的info屬性設(shè)置部分,info屬性的界面如下:

詳解iOS Project和Targets配置

主要分為三部分:Deployment Target、Configurations和Localizations。

Deployment Target:部署配置,主要是對(duì)本project的生成的App的可以運(yùn)行的最低版本進(jìn)行配置,默認(rèn)是當(dāng)前Xcode上API的最新版本,所以,在我們的項(xiàng)目中有需要對(duì)低版本適配的地方需要在這里設(shè)置。同樣的,我們還可以在build setting中對(duì)這一屬性進(jìn)行設(shè)置,兩者是同步的。 Localizations:本地化,這里的功能主要是添加我們的App所支持的語(yǔ)言,通過(guò)上圖最下面的紅色圈內(nèi)的【+】【-】按鈕可以添加或刪除不同的語(yǔ)種,并可以選擇根據(jù)手機(jī)的設(shè)置進(jìn)行不同語(yǔ)種的自適應(yīng)。關(guān)于最下面的選擇是否開啟國(guó)際化,默認(rèn)是開啟的

Configurations:用來(lái)配置iOS項(xiàng)目的xcconfig文件,主要用于在幾套不同的開發(fā)環(huán)境編譯。xcconfig文件其實(shí)就是xcode里的config文件,本質(zhì)是一個(gè)用來(lái)保存Build Settings鍵值對(duì)的純文本文件。這些鍵值對(duì)覆蓋Build Settings中的值,所以當(dāng)在xcconfig文件中配置了的選項(xiàng),在Build Settings中設(shè)置將失效。我們?cè)陧?xiàng)目中一般不會(huì)進(jìn)行xcconfig文件的自定義。具體xcconfig文件是什么東東,大家可以查看:iOS之Xcconfig雜談 。估計(jì)很多新入門的iOS開發(fā)對(duì)xcconfig文件都不是很熟悉(其實(shí)我也不是很了解。。。), 但是大家可能都用過(guò)Cocoapods, 其實(shí)Cocoapods的項(xiàng)目配置管理很多都是依賴xcconfig文件去實(shí)現(xiàn)的。所以在使用Cocoapods進(jìn)行導(dǎo)包的項(xiàng)目中,我們通過(guò)打開.xcworkspace文件,我們會(huì)發(fā)現(xiàn)project-->info-->configutations下的都有對(duì)應(yīng)的配置文件,而原先沒有用Cocoapods配置的則沒有相關(guān)的配置文件,具體區(qū)別如下圖所示。

 詳解iOS Project和Targets配置   

詳解iOS Project和Targets配置

 2.2 target屬性設(shè)置

在前面我提到了,target的屬性設(shè)置的內(nèi)容比較多,總共有g(shù)eneral、capabilities、resource tags、 info、build setting、build phases和build rules七項(xiàng),接下來(lái)我們就一個(gè)一個(gè)來(lái)了解和學(xué)習(xí)。

 2.2.1 target的general屬性設(shè)置

target的general屬性設(shè)置界面如下圖所示,主要分為六個(gè)部分,下面我們隊(duì)每一部分的設(shè)置的意思進(jìn)行一個(gè)解讀。

詳解iOS Project和Targets配置 

Identify(標(biāo)識(shí)符)欄主要定義了一些和應(yīng)用發(fā)布有關(guān)的標(biāo)識(shí)屬性。 Display Name(App應(yīng)用顯示名):安裝到iOS手機(jī)或iPad上App的名稱。 Bundle Identifier(包標(biāo)識(shí)符)是該應(yīng)用的唯一ID,用來(lái)讓操作系統(tǒng)和AppStore識(shí)別。在創(chuàng)建項(xiàng)目或者對(duì)象過(guò)程中Xcode就自行創(chuàng)建了包標(biāo)識(shí)符,一般情況下不要修改它。 Version(外部版本號(hào))使用戶能夠看到的版本號(hào)。 Build(內(nèi)部版本號(hào))開發(fā)者自己看到的版本號(hào),以區(qū)分內(nèi)部測(cè)試版本。 Signing(簽名)主要是進(jìn)行證書管理,在真機(jī)調(diào)試或者打包時(shí)我們都需要進(jìn)行簽名進(jìn)行認(rèn)證才可以的。這里有一個(gè)簡(jiǎn)單的使用教程,大家有需要可以戳這里: IOS的Automatically Sign功能,直接在設(shè)備上打包。 Deployment Info(部署信息)定義了一些和應(yīng)用配置相關(guān)的標(biāo)識(shí)屬性。 Deployment Target(部署對(duì)象):用來(lái)設(shè)置支持的最低版本。這個(gè)和project的info中的一個(gè)意思,并且,這兩個(gè)的設(shè)置最好是一樣,如果不一樣,最后的App會(huì)以target的設(shè)置為準(zhǔn)。 Devices(設(shè)備):用來(lái)設(shè)置支持的設(shè)備,有iPhone、iPad和Universal三個(gè)選項(xiàng)。 Main Interface(主界面):應(yīng)用啟動(dòng)時(shí)預(yù)加載的主界面視圖。一般有兩種方法: 一種是通過(guò)Main.storyboard進(jìn)行啟動(dòng),設(shè)置這種方法需要我們整個(gè)項(xiàng)目的邏輯和跳轉(zhuǎn)都在Main.storyboard中完成取消stroryboard的方式啟動(dòng)主界面,而是通過(guò)代碼的方式運(yùn)行main.m的方法進(jìn)行啟動(dòng),并通過(guò)在AppDelegate的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中指定主界面視圖進(jìn)行啟動(dòng)。一般項(xiàng)目中都是采用這種方法進(jìn)行的,因?yàn)橐话沩?xiàng)目中界面比較多,很多都是通過(guò)純代碼的風(fēng)格進(jìn)行定義的,這樣方便修改和定位問(wèn)題,項(xiàng)目的邏輯也更清晰,特別是多人合作的項(xiàng)目,這種風(fēng)格更適合。 Device Orientation(設(shè)備方向):定義應(yīng)用支持的方向。有Portrait、Upside Down、Landscape Left(橫評(píng)、Home鍵在左)、Landscape Right幾種方向。 Status Bar Style(狀態(tài)欄樣式)  App Icons and Launch Images:應(yīng)用圖標(biāo)和啟動(dòng)頁(yè)面。主要設(shè)置三項(xiàng):應(yīng)用圖標(biāo)、啟動(dòng)圖片和啟動(dòng)頁(yè)面。具體應(yīng)用圖標(biāo)和啟動(dòng)頁(yè)面的大小尺寸介紹見官網(wǎng):Human Interface Guidelines。 App icon Source(應(yīng)用圖標(biāo)):對(duì)應(yīng)著文件資源Assets.xcassets目錄中的AppIcon中的圖片,如下圖所示。最右邊的面板可以選擇添加哪一種或哪幾種設(shè)備上的圖標(biāo),每一個(gè)型號(hào)的設(shè)備上的圖標(biāo)的尺寸是不同的。在中間有一個(gè)個(gè)的小格子,我們將所有切好的圖標(biāo)直接拖過(guò)來(lái),他們會(huì)自動(dòng)找到自己應(yīng)該放在的格子里。這些小格子主要分為四類: Notification:通知時(shí)的圖標(biāo),類似有應(yīng)用相關(guān)的推送消息時(shí),有時(shí)候需要顯示本應(yīng)用的圖標(biāo)則會(huì)顯示這個(gè)尺寸的 Spotlight:搜索小圖標(biāo),當(dāng)在Spotlight中輸入應(yīng)用名,搜索結(jié)果中出現(xiàn)該應(yīng)用時(shí)的圖標(biāo)就是這個(gè)尺寸的,還有設(shè)置里的圖標(biāo)也是這個(gè)尺寸的。 App:這就是正常的App圖標(biāo),安裝好之后在桌面顯示的,或者分享推薦時(shí)顯示的應(yīng)用也是這個(gè)尺寸的圖標(biāo) App store:應(yīng)用商店中的顯示的圖標(biāo) Luanch Image Source(啟動(dòng)圖片):同樣對(duì)應(yīng)著文件資源Assets.xcassets目錄中的LuanchImage中的圖片,設(shè)定了各種情況下的啟動(dòng)圖片,具體界面就不截圖了,和Appicon一樣,我們將所有切好的圖標(biāo)直接拖過(guò)來(lái),他們會(huì)自動(dòng)找到自己應(yīng)該放在的格子里。啟動(dòng)圖片實(shí)際上定義了應(yīng)用啟動(dòng)后的界面大小,所以在不同機(jī)型中我們需要做好適配,見下面的【啟動(dòng)頁(yè)面在屏幕適配中的作用】。一款A(yù)pp必須設(shè)定對(duì)應(yīng)設(shè)備的啟動(dòng)圖片,否則點(diǎn)開應(yīng)用會(huì)是一片黑白。 Luanch Screen File(啟動(dòng)頁(yè)面文件):是一個(gè)storyboard文件,作用與Luanch Image一樣,但是啟動(dòng)文件的優(yōu)先級(jí)高于啟動(dòng)圖片,就是說(shuō)如果兩個(gè)都設(shè)置了,那么啟動(dòng)頁(yè)面以啟動(dòng)文件為準(zhǔn),如果都沒有設(shè)置,則無(wú)法啟動(dòng)。啟動(dòng)頁(yè)面的作用:在我們點(diǎn)擊應(yīng)用圖標(biāo)啟動(dòng)應(yīng)用時(shí),應(yīng)用啟動(dòng)需要一定的操作時(shí)間,再啟動(dòng)期間,為了增強(qiáng)應(yīng)用程序啟動(dòng)時(shí)的用戶體驗(yàn),您應(yīng)該提供一個(gè)啟動(dòng)圖像。啟動(dòng)圖像與應(yīng)用程序的首屏幕看起來(lái)非常相似。當(dāng)用戶在主屏幕上點(diǎn)擊您的應(yīng)用程序圖標(biāo)時(shí),iPhone OS會(huì)立即顯示這個(gè)啟動(dòng)圖像。一旦準(zhǔn)備就緒,您的應(yīng)用程序就會(huì)顯示它的首屏幕,來(lái)替換掉這個(gè)啟動(dòng)占位圖像。一定要強(qiáng)調(diào)的是,之所以提供啟動(dòng)圖像,是為了改善用戶體驗(yàn),并不是為了提供:應(yīng)用程序進(jìn)入體驗(yàn)」,比如啟動(dòng)動(dòng)畫。

啟動(dòng)頁(yè)面在屏幕適配中的作用:每個(gè)機(jī)型,比如同時(shí)支持iPhone和iPad的程序,需要分別為iPhone跟iPad指定啟動(dòng)圖片。當(dāng)舊的iPhone 4的程序,運(yùn)行在iPhone 5上面,沒有iPhone 5的啟動(dòng)圖片,就采用兼容模式,上下留黑邊。當(dāng)為iPhone 5指定了新的啟動(dòng)圖片,系統(tǒng)就認(rèn)為這個(gè)應(yīng)用程序是已經(jīng)適配了iPhone 5的。當(dāng)舊的iPhone 5程序運(yùn)行在iPhone 6上面,假如沒有經(jīng)過(guò)適配。舊程序自動(dòng)等比放大,鋪滿新手機(jī),舊程序也可以正常運(yùn)行。這種方案可算是自動(dòng)適配。但因?yàn)榕f程序拉伸了,整體看起來(lái)有點(diǎn)虛,也不能更好利用大屏空間。當(dāng)需要開發(fā)者手動(dòng)適配的時(shí)候,跟iPhone 4過(guò)渡到iPhone 5一樣,在新程序中,指定一張新的啟動(dòng)圖片。當(dāng)指定了啟動(dòng)圖,系統(tǒng)就認(rèn)為應(yīng)用已經(jīng)做好了屏幕適配,屏幕分辨率就變成應(yīng)有的大小。在某機(jī)型上,如果是自動(dòng)適配,比如iPhone 5,老版程序就會(huì)在屏幕上、下倆端多出倆塊黑條;比如iPhone6/6plus,老版程序就會(huì)自動(dòng)等比拉伸。那如何關(guān)閉自動(dòng)適配?指定啟動(dòng)圖或者使用Launch Screen File.xib,即程序使用手動(dòng)適配,不會(huì)做拉伸等,但是程序內(nèi)部必須已做處理,否則使用自動(dòng)適配方案。  Embedded Binaries(綁定二進(jìn)制文件):用來(lái)連接二進(jìn)制文件,一般在使用第三方SDK的時(shí)候使用。  Linked Frameworks and Libraries(鏈接的框架和庫(kù)):選擇要鏈接的框架和庫(kù),既可以是SDK自帶的框架,也可以是第三方框架,在Build Phases中也有類似的功能選項(xiàng)。

詳解iOS Project和Targets配置

2.2.1 target的info屬性設(shè)置

target的info屬性設(shè)置界面如下圖所示,主要分為五個(gè)部分,下面我們隊(duì)每一部分的設(shè)置的意思進(jìn)行一個(gè)解讀。

詳解iOS Project和Targets配置

在這一部分,最重要的就是第一部分Custom iOS Target Properties自定義iOS目標(biāo)屬性,其他的四個(gè)部分基本上都不怎么用,大家不用管就好了。在target的info選項(xiàng)卡中的五項(xiàng)信息與我們項(xiàng)目資源目錄下的info.plist文件中的內(nèi)容是一致,并且修改其中一個(gè)另一個(gè)會(huì)自動(dòng)修改。此外,我們?cè)?.2.1中講到的general選項(xiàng)卡中的一些設(shè)置也會(huì)對(duì)應(yīng)到info.plist文件中,所以這些內(nèi)容都是相通的,我們修改一處,其他的地方會(huì)同步次修改。info.plist中其實(shí)加載的信息會(huì)非常多,上面是創(chuàng)建項(xiàng)目之后自動(dòng)生成的一些最基本的設(shè)置選項(xiàng),每一項(xiàng)對(duì)應(yīng)的意思如下解釋:

Localization native development region : 與本地化設(shè)置有關(guān),為默認(rèn)的開發(fā)語(yǔ)言 Executable file:程序安裝包的名稱 Bundle identifier:軟件唯一的標(biāo)識(shí),是根據(jù)公司的標(biāo)識(shí)與項(xiàng)目名稱自動(dòng)生成的,在上傳和測(cè)試的時(shí)候會(huì)用到 InfoDictionary version:版本信息 Bundle name:App安裝后顯示的名稱 Bundle OS Type code:用來(lái)標(biāo)識(shí)軟件包類型 Bundle versions string, short:發(fā)布的版本字符串 Bundle creator OS Type code:創(chuàng)建者的標(biāo)識(shí) Bundle version:應(yīng)用程序版本號(hào) Application requires iPhone environment:用于指示程序包是否只能運(yùn)行在iPhone OS 系統(tǒng)上,默認(rèn)為YES Launch screen interface file base name:歡迎界面的文件名稱 Main storyboard file base name:默認(rèn)情況下程序的主入口 Supported interface orientations:設(shè)置程序默認(rèn)支持的方向

除此之外,我們?cè)陂_發(fā)過(guò)程可能還需要添加一些其他的信息,包括一些權(quán)限的添加,網(wǎng)絡(luò)權(quán)限、定位權(quán)限、讀寫聯(lián)系人權(quán)限等等,應(yīng)用白名單的添加等都是在這里進(jìn)行配置的。關(guān)于info.plist的具體信息和內(nèi)容詳情參見:Xcode中的Info.plist字段列表詳解。

另外四部分的簡(jiǎn)單解釋:

Document Types 文檔類型:定義了應(yīng)用程序所能識(shí)別的文檔類型,并且還可以定義在系統(tǒng)中顯示的該類型文檔的自定義圖標(biāo)。 Exported UTIs 導(dǎo)出的UTI:UTI Uniform Type Identifiers同一類型標(biāo)識(shí)符。 Imported UTIs 導(dǎo)入的UTI: URL Types URL類型:用來(lái)定義URL以便讓應(yīng)用程序理解應(yīng)用間交換的數(shù)據(jù)結(jié)構(gòu)??捎糜冢篒OS喚醒其他程序,程序間相互調(diào)用。例如::在URLTypes中URLSchemes中組冊(cè)AAPP;在B程序中,openUrl:[NSURL urlWithString:@"AAPP:"];注意":"冒號(hào),沒有冒號(hào)是不能成喚醒另一個(gè)程序的。其次如果參數(shù)中有“&”特殊字符穿,建議對(duì)參數(shù)進(jìn)行base64轉(zhuǎn)換。

2.2.3 target的capabilities屬性設(shè)置

target的capabilities屬性設(shè)置這一塊主要是一些性能設(shè)置開關(guān)選擇,例如推送通知、云存儲(chǔ)、游戲中心、后臺(tái)模式等,我們選擇需要的開關(guān)進(jìn)行打開或者關(guān)閉,這些相應(yīng)的狀態(tài)都會(huì)在info.plist中進(jìn)行修改。所以,同樣的,我們也可以在info.plist添加一些權(quán)限或性能開關(guān)之后,在target的capabilities中也會(huì)進(jìn)行相應(yīng)的修改的。具體的界面如下圖所示:

詳解iOS Project和Targets配置

2.2.4 target中的Resource Tag屬性設(shè)置

target中的Resource Tag選項(xiàng)卡主要是為項(xiàng)目中的資源進(jìn)行添加tag分類,方便我們對(duì)齊加載順序和加載時(shí)機(jī)進(jìn)行選擇和設(shè)置,即實(shí)現(xiàn)按需加載,在需要的時(shí)候才加載資源,屬性設(shè)置界面如下圖所示。這樣做的好處就是可以實(shí)現(xiàn)如下幾種資源加載形式:

初始資源的延遲加載:app有一些資源是主要功能要用到的,但在啟動(dòng)時(shí)并不需要。將這些資源標(biāo)記為“初始需要”。操作系統(tǒng)在app啟動(dòng)時(shí)會(huì)自動(dòng)下載這些資源。例如,圖片編輯app有許多不常用的濾鏡。 app資源的延遲加載:app有一些只在特定情景下使用的資源,當(dāng)應(yīng)用可能要進(jìn)入這些場(chǎng)景時(shí),會(huì)請(qǐng)求這些資源。例如,在一個(gè)有很多關(guān)卡的游戲中,用戶只需要當(dāng)前關(guān)卡和下一關(guān)卡的資源。 不常用資源的遠(yuǎn)程存儲(chǔ):app有一些很少使用的資源,當(dāng)需要這些資源時(shí)會(huì)去請(qǐng)求它們。例如,當(dāng)app第一次打開時(shí)會(huì)展示一個(gè)教程,而這個(gè)教程之后就可能不會(huì)在用到。app在第一次啟動(dòng)時(shí)請(qǐng)求教程的資源,這之后只在需要展示教程或者添加了新功能才去請(qǐng)求該資源。應(yīng)用內(nèi)購(gòu)買資源的遠(yuǎn)程存儲(chǔ):app提供包含額外資源的應(yīng)用內(nèi)購(gòu)買。app會(huì)在啟動(dòng)完成后請(qǐng)求已購(gòu)買模塊的資源。例如,用戶在一個(gè)鍵盤app內(nèi)購(gòu)買了SuperGeeky表情包。應(yīng)用程序會(huì)在啟動(dòng)完成后請(qǐng)求表情包的資源。第一次啟動(dòng)時(shí)必需資源的加載:app有一些資源只在第一次啟動(dòng)時(shí)需要,之后的啟動(dòng)不再需要。例如,app有一個(gè)只在第一次啟動(dòng)時(shí)展示的教程。

詳解iOS Project和Targets配置

關(guān)于Resource Tag和按需加載的詳情內(nèi)容和步驟參見下面兩篇文章:

On-Demand Resources Guide中文版(按需加載資源--上)

On-Demand Resources Guide中文版(按需加載資源--下)

2.2.5 target的build setting屬性設(shè)置

target的build setting選項(xiàng)卡的是最主要的一部分編譯選項(xiàng)設(shè)置,配置界面如下圖所示,界面只是截了一部分,完整的build settings共有20項(xiàng)配置內(nèi)容。從配置界面上看,每一項(xiàng)的配置都有四列,我們可以看到,從左至右的順序分別是:Resolved列、帶Target圖標(biāo)列、帶Project圖標(biāo)列、iOS Default列,每一列所代表的意義如下。

詳解iOS Project和Targets配置

Resolved列:最終確定的編譯方式,無(wú)法自己設(shè)定,其結(jié)果是根據(jù)其右邊三欄的選擇結(jié)果以及優(yōu)先級(jí)順序來(lái)確定最后編譯時(shí)采用的編譯方式。在圖的第二行選項(xiàng)卡中選擇combined選項(xiàng),可以直接地看到只有該欄的最后結(jié)果。帶Target圖標(biāo)列:target的build setting配置的編譯選項(xiàng),可自定義。其優(yōu)先級(jí)最高,一旦進(jìn)行設(shè)置,則最后的編譯方式以該欄的結(jié)果為準(zhǔn)。帶Project圖標(biāo)列:project的build setting配置的編譯選項(xiàng),可自定義,這一欄的結(jié)果與project中build setting選項(xiàng)卡中的結(jié)果是一致的,修改其中一個(gè)地方,另一處也會(huì)自動(dòng)修改。其優(yōu)先級(jí)介于target和default之間,當(dāng)target沒有設(shè)置編譯選項(xiàng),而該欄進(jìn)行了設(shè)置時(shí),則最后的編譯方式以該欄為準(zhǔn)。 iOS Default列:在創(chuàng)建項(xiàng)目時(shí)系統(tǒng)自帶的默認(rèn)編譯選項(xiàng),無(wú)法修改。優(yōu)先級(jí)最低,只有當(dāng)其他兩欄都沒有設(shè)置選項(xiàng)時(shí),最后的編譯方式才會(huì)以該欄為準(zhǔn)。優(yōu)先級(jí)順序:帶Target圖標(biāo)列 >> 帶Project圖標(biāo)列 >> iOS Default列。

target的build setting選項(xiàng)卡中的每一行具體所代表的編譯詳情參見:Xcode 編譯選項(xiàng)詳解。

2.2.6 target的build phase屬性設(shè)置

target的build phase選項(xiàng)卡的的主要功能是配置編譯器在不同編譯階段的參數(shù),包括編譯所需的資源文件(包括代碼、配置以及各種資源文件),配置界面如下圖所示,主要包括四方面的內(nèi)容。

詳解iOS Project和Targets配置

Target Dependencies Target對(duì)象依賴階段:某些Target可能依賴某個(gè)Target輸出的值,這里設(shè)置依賴。依賴于其他target的輸出的時(shí)候,在編譯時(shí)系統(tǒng)會(huì)自動(dòng)先編譯被依賴的target,得到輸出值,再編譯當(dāng)前target。對(duì)象依賴階段可以讓Xcode知道必須在當(dāng)前選擇的對(duì)象編譯之編譯的其它依賴對(duì)象(比如應(yīng)用擴(kuò)展、插件等等)。這個(gè)階段是無(wú)法被刪除的。 Compile Sources 源文件編譯階段: 是指將有哪些源代碼被編譯,可以通過(guò)紅框中的【+】【-】按鈕進(jìn)行添加或刪除資源來(lái)控制編譯的代碼文件。并且可以通過(guò)修改改階段的Compiler Flags(編譯器標(biāo)識(shí))來(lái)為每個(gè)單獨(dú)文件設(shè)置其編譯器編織,比如優(yōu)化設(shè)置等等。 Link Binary With Libraries 鏈接二進(jìn)制庫(kù)階段:是指編譯過(guò)程中會(huì)引用哪些庫(kù)文件,我們同樣可以通過(guò)【+】【-】按鈕進(jìn)行添加或刪除編譯所引用的庫(kù)文件。 Copy  Bundle Resources 復(fù)制資源文件階段:是指生成的product的.app內(nèi)將包含哪些資源文件,同樣可以通過(guò)紅框中的【+】【-】按鈕進(jìn)行添加或刪除資源來(lái)控制編譯的資源文件。該階段定義了對(duì)象中的資源文件,包括應(yīng)用程序、圖標(biāo)、界面構(gòu)造器、視頻、模板等等。這些資源都會(huì)被復(fù)制到安裝包的Contents/Resources文件夾下。

2.2.7 target的build rules屬性設(shè)置

關(guān)于target的build rules這一塊平時(shí)沒有接觸過(guò),也沒有進(jìn)行相關(guān)的設(shè)置,網(wǎng)上查詢了半天的資料也沒有找到(囧),如果大家有相關(guān)的資料,麻煩評(píng)論里留一下,我可以補(bǔ)充上來(lái)。

分享題目:詳解iOSProject和Targets配置
本文鏈接:http://aaarwkj.com/article0/jeipoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站排名、小程序開發(fā)網(wǎng)頁(yè)設(shè)計(jì)公司、電子商務(wù)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
国产日产精品久久婷婷色| 国产黄色看三级91大片| 色综合久久综合香梨网| 日韩欧美日日夜夜精品| 精品国产一区亚洲二区| 在线观看不卡的黄色地址 | 久久精品91久久久| 一区二区五区日韩国产| 日韩中文字幕专区在线| 日本午夜福利免费在线播放| 国产精品久久中文字幕亚洲| 亚洲国模av一区二区三区| 亚洲婷婷久久一区二区| 欧美丝袜熟女日韩亚洲| 婷婷中文字幕在线视频| 一区二区三区在线观看美女视频| 99久热在线精品视频| 国产精品一区二区三区播放| 国产第一页国产第一页| 久久蜜臀av一区三区| 日韩在线视频免费不卡一区| 欧美日韩欧美国产精品| 精品视频日韩在线观看| 天天操夜夜操白天操晚上操| 日韩国产欧美色资源在线| 日韩一区二区三区四区精品| 国产欧美激情一区二区| 真实夫妻露脸爱视频九色网| 在线播放国产91精品| av天堂精品一区二区三区| 福利一区二区在线视频| 国产黄片免费高清观看| 视频久久这里只有精品| 97久久精品人妻一区二区三区 | 欧美日韩国产一区在线观看| 亚洲一区二区三区欧美精品 | 亚洲国产精品天堂av在线播放| 极品大胸美女被啪啪的高潮| 粉嫩一区二区三区精品视频| 欧美日韩亚洲国产精品视频| 香蕉视频欧美久久精品|