2011-01-27 51 views
3

我注意到這裏每個平臺都有不同的要求。我想知道是否有可能建立一個項目,但有多個目標,其中每個目標都是Mac OS X(類似CD /安裝版本),Apple Mac Store和iOS設備。我可以在XCode中保留一個項目,但爲Mac OS X,Apple Mac Store和iOS設備構建它嗎?

如果我正在以這種錯誤的方式去做,那麼我很想知道!我主要在個人電腦上開發,但是我希望儘可能多地展示App Store的狀態!

回答

2

爲Mac應用商店和獨立分發的Mac應用保留單獨的目標很簡單。您只需確保您的收據驗證碼有條件地包含在應用商店目標中,而不是另一個目標;而您的自定義授權計劃則包含在其他方面。如果您將兩個目標中的不同操作系統作爲目標,情況會變得更加複雜,但它們並非不可逾越:您可以在運行時測試類或選擇器的存在,以確保您不會在較早的系統上調用較新的API。

順便說一句,它也值得爲這些目標分開Info.plist文件。部分原因是您不需要或不希望在應用商店目標中包含Sparkle屬性等內容,也因爲每個目標應具有唯一的包標識符。應用程序商店在安裝應用程序時會做一些奇怪的事情,它認爲應用程序來自商店但實際上並未這樣做,而且您不希望冒險更新程序或Apple嘗試更新通過其他機制部署的應用程序。但這不是關於組織你的Xcode項目,這是一個部署問題。

+0

感謝一百萬,事實證明,即使這是可能的,我仍然無法以這種方式執行此任務。無論如何感謝您的信息! – Znoey 2011-01-27 18:38:13

0

大多數情況下,是的。所有Mac/iOS應用程序都可以用Objective-C編寫,代碼非常相似。但是,您必須記住iOS設備與Mac有不同的屏幕尺寸,甚至相互之間也有不同的屏幕尺寸。這意味着輸入隱喻是不同的,並且UI是不同的。雖然可以做你想做的事情,但不建議只編寫一次並編譯三次。

這就是說,我不使用Xcode 4,所以我不能告訴你。您正在尋找針對不同設備的不同版本,您將希望儘可能單獨編寫應用程序邏輯和輸入邏輯。然後,您創建多個目標,每個目標一個。您爲每個目標定義編譯器標誌。在您的代碼中,您將使用這些標誌爲您的構建使用適當的代碼。

+0

感謝您的信息!我也不在XCode 4上(3.2.5這裏),但它似乎是可能的,所以爲什麼不問。我們按照您的建議已經爲其他平臺提供了建議,但在我們的情況下,如果我們將項目作爲單個實體進行維護,則不會對我們有任何好處。雖然這是完全可能的^^^ – Znoey 2011-01-27 18:41:20

0

至少從3.2.5開始,這絕對不是問題。您不一定能夠在項目範圍內應用所有構建設置,但是可以在每個目標的基礎上指定它們。 只需添加適當類型的目標(可可觸摸,可可等)。

+0

是的,我在想什麼!每個目標的基礎是好的,但每個項目是有點混亂的地方。以前的帖子基本上描述了這種情況,儘管它與手頭的問題關係不大。 – Znoey 2011-01-27 18:42:36