簡體   English   中英

你如何為Mac和iPhone創建混合Xcode項目?

[英]How do you create hybrid Xcode projects for Mac & iPhone?

我正在開展一個包含兩個目標的項目。 一個用於構建在Mac開發中使用的框架,另一個用於創建用於iPhone開發的靜態庫。

在公共代碼中,平台之間的#ifdef沒問題,但我無法正確獲取目標和依賴關系。

第一個問題是,使用哪個基礎SDK? 例如,如果我使用Mac 10.5,我不能包含UIKit框架(它標記為紅色,如果我展開它,則不顯示頭文件)。 即使實際鏈接它的目標是為iPhone OS構建的..

另一個問題是,Foundation.framework或Security.framework之類的東西怎么樣? 如何處理它們,因為我只能包含其中一個版本(Mac或iPhone SDK)......

有人對我有建議嗎? 我希望有一個干凈的項目結構,並且兩個目標的代碼庫完全相同......配置是否可行?

謝謝!

只是讓你知道:

我最終得到了一個針對不同平台的不同目標的項目。 但是我沒有在目標本身中包含我依賴的框架,而是將它們添加到Other Linker Flags構建設置中:

-framework Foundation -framework Security

你可以在我在github上做的項目中查看它。

實際上並沒有那么糟糕。 只需創建相應類型的第二個目標,然后更改“Base SDK”構建設置。 然后確保添加所有必要的文件。 如果要同時構建兩者,請創建聚合目標。 有關實際示例,請參閱我的項目SSPromise

可能最簡單的(就你必須要做的事)這樣做的方法是兩個項目(如果你願意的話你可以將它們包裝成一個虛擬傘項目的子項目),它們使用相同的源集 - 一個針對Mac OS X,另一個iPhone OS。

或者,您是否可以在同一個項目中創建兩個單獨的目標,並從每個“獲取信息”窗口的“構建”選項卡中更改“基礎SDK”? 我沒有在我面前檢查Xcode,但我認為它會讓你這樣做。

(當然,無論使用哪種方法,您都可以添加第三個目標:模擬器的靜態庫,在測試時非常有用!)

你不能使用PIMPL成語嗎? 和/或有兩個共同的標題,但使用基於目標架構或SDK的不同實現文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM