我得到這樣的警告:類X在兩個<framework>和<application>兩個中的一個將被使用,其中一個是不確定的實施
Class X is implemented in both <framework> and <application> one of the two will be used, which one is undefined
此警告覆蓋相當多的在網絡上,但我還沒有找到任何答案,我遇到的具體問題。
方案
我已經建立了MyFramework和MyApplication的(作爲一個MyFramework測試/演示程序)。
MyFramework使用CocoaPod(我將其稱爲CoolPod),我也希望在MyApplication中使用它(並且假設MyFramework的使用者也是合理的)。
我需要能夠將MyFramework作爲.framework(對於封閉源代碼)進行分發。但是,這意味着MyFramework將CoolPod嵌入到其編譯的庫中。
現在,當我將MyFramework和CoolPod導入到MyApplication中時,由於CoolPod的類已包含在MyFramework的庫中(因爲CoolPod已嵌入),因此我得到了此衝突(輸出上面顯示的警告)。
所以我們有這樣的結構:
CoolPod -> MyFramework \
MyApplication
CoolPod/
問題
如何避免這個矛盾呢?
- 有沒有辦法讓我的MyApplication提供CoolPod到MyFramework?
- 我是否必須通過MyFramework管道CoolPod的標題?
我想過在MyApplication中包含CoolPod的頭文件(但不是它的lib),然而這看起來過於複雜,應該是一個簡單的例子。
任何幫助,非常感謝,這是真的阻止我現在。
感謝,
靛藍
我有類似的問題,你有沒有找到一個解決方案? – cocoapriest
類似的問題,但與單元測試,在這裏討論:http://stackoverflow.com/questions/6149673/class-foo-is-implemented-in-both-myapp-and-myapptestcase-one-of-the-two -will-be – ThomasW
令人驚訝 - 這不是一個真正常見的模式嗎?開發人員不希望能夠創建編譯單元的DAG,而不必擔心會發生碰撞?! – fatuhoku