2003
01 02 03 04 05 06 07 08 09 10 11 12
2006
01 02 03 04 05 06 07 08 09 10 11 12
2007
01 02 03 04 05 06 07 08 09 10 11 12
2008
01 02 03 04 05 06 07 08 09 10 11 12
2009
01 02 03 04 05 06 07 08 09 10 11 12
2010
01 02 03 04 05 06 07 08 09 10 11 12
2011
01 02 03 04 05 06 07 08 09 10 11 12
2017
01 02 03 04 05 06 07 08 09 10 11 12
2018
01 02 03 04 05 06 07 08 09 10 11 12
 

Xcode 3.1中文使用指引初稿(一)

前言
常常看到一些 CS 新鮮人在論壇問:「要怎麼用 mac 來寫程式?」相較於 Dev-C++ 或者 Visual Studio 等 windows 上直接開新檔案、按下編譯執行,Xcode 要先在一堆初學程式者丈二金剛摸不著頭腦的英文選項中選出適當的 project 種類,可能就已經難倒一堆人了。接下來專案視窗又充滿一堆看不懂的圖案,Target 和 Executables 有什麼差異?各是幹嘛用的?幸好基本的 C 程式作業如何寫,網路上已經有人介紹。然而,很多人也就從此停留在這裡了。我想要寫一篇中文的 Xcode 使用指引,希望能包含更多的 Xcode 功能介紹。

Project
Xcode 的操作是圍繞著 project 為中心的。一個 project 包含了所有直接參與軟體產出過程的檔案(程式碼、程式庫、美工檔案、說明文件)資訊、編譯參數、source code management 設定、debug 設定等。雖然 Xcode 3 也支援傳統以 Makefile 為基礎的無 project 工作流程,但會用 Makefile 設定各種編譯參數的人對 Xcode 應該不會有問題才對。所以本篇仍以 project 為準。

Target
詳細的定義我不清楚,也很難解釋。通常一個 target 代表一個軟體產出物的「設定」,內容包含 dependent target、哪些檔案參與這個 target、要怎麼處理檔案的規則、編譯設定、生產的流程、產物的相關資訊等。舉個常見的情況來說明:

我今天想要寫一個軟體,於是開了一個 cocoa application的project。此樣板內已經預設好一個 target,會把所屬檔案按照適當的工作流程,套用適當的規則處理,產出最後的 MyGreatSoftware.app。後來我需要 plugin 的架構,於是就新增一個 cocoa loadable bundle target,設定好基本資訊和哪些檔案有參與,就可以幫我產生出 plugin。經過測試以後,我覺得這個 plugin 太棒了,要成為 MyGreatSoftware.app 的一部分,於是就把這個 plugin target 加到 app target 的 dependent targets 下。如此一來,編譯 app 時,Xcode 會先去把 plugin 給編譯好。光是編譯好還不夠,我們還要在 app target 底下新增一個 copy file build phase 把這個編譯好的 plugin 給拷貝到 app/Contents/Plugins 底下,於是 MyGreatSoftware 就會包含最新版本的 plugin 了。

Executables
基本上就是 target 裡面有定義的可執行檔,除此之外你可以另外加上其他的檔案,例如你正在寫 Safari plugin,就可以把 Safari.app 加進來方便除錯。你可以在這裡用 Get Info (⌘-I) 設定執行時所需要的 command-line arguments。


待續

 
 

Write Concisely