Xcode上手之管理項目

Xcode技巧系列:http://www.lxweimin.com/notebooks/7639304/latest

1.管理文件

創建全新的文件

方法一:File->New File
方法二:右鍵->New File
方法三:Command+N
創建后,如圖:

創建文件

|名稱|作用|說明|
|::|::|:-:|
|Cocoa Touch Class|創建一個Cocoa Touch類文件|該文件創建時需要選擇繼承于哪一個父類,一般創建文件選擇該方式|
|UI Test Case|創建一個UI測試文件|手動添加UI測試文件來進行測試|
|Unit Test Case Class|創建一個單元測試文件|手動添加單元測試文件|
|Playground|創建一個Playground文件|-|
|Swift File|創建一個Swift文件|-|
|Objective-C File|創建一個OC文件|創建OC文件時,可以選擇文件的類型:Empty File空文件,Category類別,Protocol協議,Extension擴展|
|Header File|創建一個頭文件|-|
|C File|創建一個C文件|-|
|C++ File|創建一個C++文件|-|
|Metal File|創建一個具有Metal技術的文件|-|
|Storyboard|創建一個故事版|-|
|View|創建一個View|-|
|Empty|創建一個空的文件|-|
|Launch Screen|創建一個啟動界面|-|

通過文件模板庫創建

模板庫創建

直接拖動該模板庫的文件到項目導航器相應位置即可快速創建

添加已有文件到項目

方法一:File->Add Files to
方法二:右鍵->Add Files to
方法三:Option+Command+A
完成上面的操作,會彈出一個窗口,如圖:


彈出框

點擊Options可以看到一些選項:
Destination:將會使Xcode將所選文件復制到項目的相應目錄下,如果不勾選,則只是添加引用,沒有將文件復制到項目中。這一點得特別注意!!!!
Added folders:Xcode將文件夾添加到項目的時候采用什么方式。

  • Create groups:創建與文件夾同名的分組,然后將該文件夾的所有內容保留到該分組下。圖標是黃色的。
  • Create folder references:創建文件夾引用,圖標是藍色的。

Add to targets:添加到目標對象,選擇你要添加到的項目中即可。

直接拖動文件到項目

直接拖動文件到項目導航器相應位置中,會出現與Add Files to可選項類似的彈出框,設置方式同上。
根據個人經驗,源代碼最好不要采用拖動的方式添加到項目,因為不好管理,我采用的方式是先拖動到項目的文件夾中,然后使用Add Files to的方式添加。拖動的一般是資源文件,比如圖片等。

重命名文件

1.在項目導航器中選擇需要修改的文件,修改即可。
2.也可在工具區域中文件檢查器的Identity and type項目修改Name

應該要特別注意一點,如果說修改了文件擴展名,那么需要在Identity and type中修改type這個選項。因為Xcode記錄下的是原文件的編譯方式,修改過后,需要手動更改
如下所示,我修改了First.m文件為.mm文件,那么需要把type修改為OC++類型。

修改擴展名

分組管理

源碼以分組的形式顯示的,點擊分組旁邊的小三角,可以打開或關閉分組。如果同時按住Option鍵,可以同時打開或關閉全部分組。
分組不會影響到文件的物理存儲結構,但是分組的刪除移動命名等操作是不可恢復的,操作之前萬分小心。
創建分組:
1.File->New Group
2.右鍵->New Group
3.Option+Command+N
刪除分組:
1.Edit->Delete
2.選中,點擊鍵盤delete鍵
3.右鍵->delete
刪除分組后,分組下的文件或分組也會刪除,刪除前請先移動出來。

刪除文件

刪除文件時,會彈出一個對話框,你需要選擇:

刪除文件

Remove Reference:刪除文件的引用,不會刪除物理存放的文件
Move to Trash:從磁盤中刪除,會把物理位置的文件也刪除

2.Target管理

對象

如圖所示:一個項目中可能包含很多個對象(Target),簡單的說,一個對象就是一個實際可運行的應用。

添加對象

1.File->New->Target
2.下方的"+"添加
可添加的對象有很多,就不列舉了。

PROJECT設置

在上圖,我可以看到,有PROJECT設置和TARGET設置。
PROJECT項目設置:該設置會應用于TARGETS內的所有對象。可設置內容如圖:

PROJECT設置

info:項目的信息

  • Deployment Target:所有對象的最低OS版本
  • Configurations:所有對象可用編譯配置
  • Localizations:指定應用程序本地化的語言

Build Settings:編譯配置,該配置和對象的編譯配置幾乎相同

TARGET設置

1.通用選項General:

通用選項

Identity:


Identity
  • Display Name:項目名稱,默認就好
  • Bundle Identifier:包標識符,該ID是唯一的,上架的時候App Store用來識別APP用的,一般不要修改
  • Version:外部版本號,用戶能夠看到
  • Build:內部版本號,開發者自己看的,區分測試版本用

Signing:應用程序的簽名,如果有開發者賬號,并且申請了證書,需要在這進行配置
Deployment Info:


Deployment Info
  • Deployment Target:對象支持運行的版本
  • Devices:支持的設備
  • Main Interface:啟動時加載的主界面,如果使用了storyboard,該值會是Main,如果純代碼編程,則需要設置為空,然后刪掉storyboard。
  • Device Orientation:應用支持的方向
  • Status Bar Style:狀態欄的樣式

App Icons and Launch Images:APP的圖標和啟動加載頁設置
Embedded Binaries:綁定的二進制文件,使用了第三方SDK時會需要
Linked Frameworks and Libraries:使用系統自帶的SDK時選擇,也可以添加第三方框架

2.功能選項Capabilities:

設置對象支持的功能。

3.資源Resource Tags

該功能是將資源放到appstore,在需要的時候進行下載。該功能沒怎么使用,不甚了解。

4.信息Info

Info

Custom iOS Target Properties:自定義目標屬性,由于關鍵字太多,請參考蘋果官方文檔
Document Types:定義了程序能夠識別的文檔類型,不需要識別文檔的應用無需設置
Exported UTLs:導出UTI,定義UTI讓應用能夠識別對應的文件類型
imported UTLs:和上面對應,用來導入UTI
URL Types:讓應用程序之間理解和交互數據用的。最多是用在APP之間的跳轉的時候。

5.編譯設置Build Settings

編譯設置

過濾欄設置:

  • Basic:顯示最常用的設置
  • Customized:自定義的設置
  • All:顯示全部設置
  • Combined:當個對象的編譯設置
  • Levels:所有對象的編譯設置

具體的設置由于太多,請參考蘋果開發文檔。要注意的是,這些設置會影響到編譯、鏈接、生成等操作,請不要隨意修改。

6.編譯階段Build Phases

編譯階段

編譯階段是當前對象編譯過程中的一個階段,系統默認有對象依賴、匯編資源以及復制包資源等。可以自行添加額外的階段,設置還可以用Shell腳本以便在編譯處理期提供更復雜、精確的控制

1.Target Dependencies:對象依賴階段,讓Xcode知道必須在當前選擇的對象編譯之前編譯其他依賴的對象,比如擴展,插件,該階段無法刪除。

2.Compile Sources:編譯源文件階段,按照該項中的定義,用合適的編譯器來編譯該對象的所有源文件。可以通過修改該階段的Compiler Flags來為每個單獨文件設置其編譯器標識,比如設置單個文件支持MRC。

3.Link Binary With Libraries:連接二進制文件和庫,可以控制對象需要連接哪些二進制文件和庫,只要使用了二進制文件或庫,就必須要鏈接他們。系統庫不會出現在這里,重復添加不會造成框架的重復引用。

4.Copy Bundle Resources:復制包資源階段,復制對象中定義了的資源文件,復制到安裝包下面。

可以通過“+”添加另外3種編譯階段。


另外3種階段

1.Copy Files:標識文件復制的目標路徑
2.Headers:指定頭文件以及可見性。Public可見,private不可見,project編譯對象時使用
3.Run Script:使腳本運行,可以在腳本編輯器區域編輯,也可以放一個腳本文件進來

7.編譯規則Build Rules

用于定義文件類型以及用于編譯他們的處理器之間的關聯。

8.對象之間的聯系

很多時候,某些文件可能需要在多個對象之間共享,因此,可以在這個文件與多個對象之間建立聯系。
創建文件的時候,就提示我們選擇對象。如果需要手動添加聯系,只需要在項目導航器中選中該文件,然后在文件檢查器中:


Target Membership

在Target Membership中選擇需要聯系的對象即可。

9.刪除對象

在項目導航器中選中項目文件,然后找到對象列表,點擊需要刪除的對象,按delete或者下方的“-”即可刪除。該對象關聯的文件不會被刪除。

3.資源管理

在項目導航欄上,可以找到Asset Catalog就是資源目錄。可以存放的圖片類型:
1.圖片集
2.應用圖標
3.加載界面
4.OS X圖標

1.創建Asset Catalog

系統自動創建了資源文件夾,如圖:


資源文件

如果我們需要自己創建的話,創建方法和創建文件類似,選擇Asset Catalog即可。

2.添加圖標

在資源目錄中,我們可以看到AppIcon這個圖片集,這就是APP的圖標,當然,如果沒有該集,可以手動創建。

APP圖標

選擇App Icons & Launch Images->選擇要創建的圖片集類型即可。
Xcode對于圖標的尺寸是有嚴格限制的,分辨率不對應的圖片放進去是會有警告的。
在屬性檢查器中,可以設置應用圖標集的名稱,所支持的版本,尺寸,iOS icon is pre-rendered選項勾選,iOS系統就不會再主界面上給予這個圖標添加圓角和高光。
注意:如果說你不小心刪除了系統自帶的資源文件夾,然后自己創建了一個,此時,Xcode是無法識別應用圖標集的,需要配置:選中圖標集所屬對象->定位到general選項卡->找到App Icons and Launch Images->App Icons Source->在下拉列表中選中自定義的圖標集即可。
圖標和加載頁面

3.添加加載界面

加載界面的添加和圖標很類似。
iOS8以后,Xcode添加了另外一種加載方式,默認是通過XIB文件加載,如果需要采用加載圖片的方式加載,則需要把上圖所示的Launch screen file中清空,然后在Launch images source中選擇圖片集即可。

4.管理圖片集

將圖片拖到資源目錄即將圖片添加到項目中創建。
如果圖片不滿足大小,可以使用切片功能(Editor->Show Slicing或者下方Show Slicing按鈕,然后點擊Start Slicing按鈕開始),將圖片分割。由于切片功能更也有很多內容就不詳細說明了。

5.移除圖片集

選中圖片集,按delete或者右鍵->remove Selected items即可。
移除圖片集中的圖片,并不會移除該圖片的格子,需要在屬性檢查器中的Devices屬性來進行刪除

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,776評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,590評論 25 707
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,147評論 4 61
  • 原本以為android內存泄露會是大牛才該解決的問題。可是公司就我一個Android啊,代碼都是你寫的啊,工具持續...
    AddisonLi閱讀 599評論 1 2
  • 昨天是我開始寫日記的第一天,開始了,就發現我有太多東西可以記錄了。我要一步一個腳印,不妄想一口吃成大胖子,踏實有力...
    chenkeyi3890閱讀 214評論 0 1