星期三, 五月 27, 2009

更改 Xcode 範本的 __MyCompanyName__ 這個變數

Xcode 產生的原始碼,都會在檔頭加入版權宣告,雖然作者名字會自己抓到,不過用了這麼久,一直沒找到在哪設定 __MyCompanyName__。

前兩天窮極無聊 Google 了一下,原來在 Xcode 裡面不能設定,要用終端機直接改 plist 設定值...

在終端機輸入以下指令:
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions -dict ORGANIZATIONNAME "Your_Name_Here“
然後重開 Xcode 就可以了。

標籤: ,

星期二, 八月 19, 2008

在 PowerPC 的 Mac 上安裝 iPhone SDK [續]

如果有朋友照著前一篇文章在 PPC 的機器上安裝 iPhone SDK 的話,應該會跟我遇到一樣的問題,那就是無法編譯 Project...

其實嚴格講起來也不是不能編譯,只是 Active SDK 沒辦法選用 Simulator,會得到 "No architectures to compile for (ARCHS=ppc, VALID_ARCHS=i386)." 的錯誤訊息。不過選用 Device 則可以正常編譯。不過這樣開發過程就會變得很麻煩,而且 Simulator 就完全沒用了。而且既然 Simulator 是 Universal 的程式,這應該是單純修改設定就可以解決的問題才是。

果然,經過簡單的 Google 之後,在 http://czhangblog.blogspot.com/2008/07/iphone-sdk.html 找到了解法。

主要就是把 iPhone Simulator 的一個設定檔修改一下即可。檔案位置在 /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/,找到裡面的 iPhone Simulator Architectures.xcspec 這個檔案。

先備份之後,把裡面
RealArchitectures = ( i386 );
這行,改成
RealArchitectures = ( i386, ppc );
然後在
// Intel
{ Type = Architecture;
...

前面加入
// G3
{ Type = Architecture;
Identifier = ppc;
Name = "Minimal (32-bit PowerPC only)";
Description = "32-bit PowerPC";
PerArchBuildSettingName = "PowerPC";
ByteOrder= big;
ListInEnum = No;
SortNumber = 201;
},

// G4
{ Type = Architecture;
Identifier = ppc7400;
Name = "PowerPC G4";
Description = "32-bit PowerPC for G4 processor";
ByteOrder= big;
ListInEnum = NO;
SortNumber = 202;
},

// G5 32-bit
{ Type = Architecture;
Identifier = ppc970;
Name = "PowerPC G5 32-bit";
Description = "32-bit PowerPC for G5 processor";
ByteOrder= big;
ListInEnum = NO;
SortNumber = 203;
},
或者也可以直接下載我改好的設定檔。

改好之後重新啟動 Xcode,你應該就可以完整的在 PPC 機種上開發 iPhone 的程式了。

標籤: ,

星期五, 八月 15, 2008

在 PowerPC 的 Mac 上安裝 iPhone SDK

如果你像我一樣還在用 PPC 的 Mac,卻又想開發 iPhone 的軟體的話,你會發現一個討人厭的問題,就是 iPhone SDK 不能裝在 PPC 的機器上。
iPhone SDK skip但是有人發現,iPhone SDK 裡面的所有程式都是 universal 的程式,也就是說,所謂的 "只支援 Intel-based Mac" 云云,只是 Apple 要逼退 PPC 機器的手段。

因此想要在 PPC 機器上開發 iPhone 軟體的朋友,請打開 iPhone SDK DMG 檔,找到 Packages 資料夾。
從 Packages 資料夾下,找出所有 iPhone* 開頭的 pkg 檔,一個一個手動安裝。不過請記得,安裝的時候請自己指定位置到 Xcode 3.1 安裝目錄(預設是 /Developer)。全部裝好之後,你就可以開啟 Xcode,在 New Project... 選項中找到 iPhone OS 的樣版,開始開發 iPhone 程式了。

iPhone Simulator 的執行也是沒有問題的。
Good luck!

標籤: ,

星期四, 六月 19, 2008

Xcode 與 C99 標準

寫程式時,迴圈是個避免不了的東西,而幾乎每個迴圈都會有個 counter。在大部分的情況下,這個 counter 是用過即丟的,因此我們常常會寫如下的 code:
for(int i=0; i<something; i++) {
some code here...
}
但是在 Xcode 下,這邊會跳出一個 C99 的 Error,原因是 gcc 預設的編譯規則是 C89,而早期的 C 規定所有的變數必須在一開頭宣告,不能在述句中宣告,因此這邊會跳出錯誤。不過對於這種用過即丟的 counter,我覺得事先宣告反而麻煩,因為會造成這個 counter 超出它所應用的 scope,事後反而容易造成問題。解決之道就是讓 gcc 改用 C99 規則。

要在 Xcode 中讓 gcc 改用 C99,請在 Groups & Files 中選取 project 名稱,然後按下 ⌘i 或工作列上的 Info,如下:
在跳出來的視窗右邊的搜尋欄位直接填入 C99,可以找到 C Languang Dialect 這項設定:

然後在 value 的選單中選取 C99 [-std=c99] 就可以了。

標籤: ,

星期三, 十一月 07, 2007

Xcode 2.5 & 3.0 發表

Apple 前幾天發表了 Xcode 2.5 及 3.0,其中 Xcode 2.5 可以安裝在 10.4 Tiger 和 10.5 Leopard 上,而 Xcode 3.0 則只能安裝在 10.5 Leopard。

根據 Release Note,Xcode 2.5 除了修改了 2.4.1 的問題之外,最主要的功能就是在 Leopard 上為那些還沒有準備好要轉移到 Xcode 3 的專案提供一個比較平緩的轉移方式。

Xcode 3.0 則是一個大改版,包含了 Objective-C 2.0 的支援、Dashcode、Interface Builder 3 等等。

不過要注意的是,Objective-C 2.0 只能在 Leopard 上執行,因此必須搭配 10.5 SDK。假如要在 Leopard 上寫能在 Tiger 執行的程式,就必須嚴守 Objective-C 1.0 和 10.4 SDK 才行。

Xcode 可以在 Apple 的開發者網站下載。
Objective-C 2.0 的官方文件在 The Objective-C 2.0 Programming Language

標籤: , ,