2012-02-10 78 views
2

我創建了一個可可觸摸靜態,使用標準的Apple框架,如MediaPlayer.framework和CoreData.framework。當我將我的主項目鏈接到這個靜態庫時,它會拋出錯誤,因爲這個庫需要這些框架。可可觸摸靜態庫 - 與標準框架的鏈接

我的問題:有沒有辦法將靜態庫設置爲鏈接到這些框架,所以我不需要將它們添加到我的主項目?我試圖將框架添加到靜態庫的「Link Binary with Libraries」構建階段,但主項目仍然適合。

有可能某種生成設置標誌我失蹤。

回答

1

不,不幸的是沒有辦法做到這一點。您必須將您的主項目與圖書館使用的框架相鏈接。

+0

雖然我很容易相信這從我的經驗,GData靜態庫似乎以某種方式實現了這一點。有些庫被封裝在它們的靜態庫中,編譯時必須包含這些庫,因爲我的主項目不需要在添加GData和鏈接時添加它們。 http://code.google.com/p/gdata-objectivec-client/ – MobileOverlord 2012-02-10 17:19:05

+0

經過進一步調查後,GDataFramework目標似乎將這些框架包含在「Link Binary with Libraries」構建階段,但GDataTouchStaticLib不包含這些庫。考慮到該框架有多個目標,對於iOS和Mac OS,它們必須能夠在Framework級別執行此操作,而不是在可可靜態庫級別執行此操作。感謝您的意見。 – MobileOverlord 2012-02-10 17:23:26

+0

我一般不瞭解MacOS框架,但GData包含一個項目中的所有文件,即使他們說*該庫包含其他具有GTM前綴的Google庫*他們所做的是他們基本上將源文件添加到GData項目。如果你看看框架目標,它只鏈接到** Security **和** SystemConfiguration **,沒有任何子模塊既不鏈接到框架也不鏈接到靜態庫目標。 – lawicko 2012-02-10 17:36:04