[英]Link framework against App and Test Target
我有一個我在普通App目標中使用的自定義框架以及相應的UnitTest目標。 事實證明,混淆運行時的方式是它無法選擇正確的實現,因為它有多個選擇:
objc[35580]: Class AClass is implemented in both ../MyApp.app/MyApp and ../MyApp.app/MyAppTests. One of the two will be used. Which one is undefined.
如果您嘗試檢查對象的類層次結構或執行任何其他類相關檢查,那當然會導致奇怪的行為。
所以歸結為以下兩個問題:
我認為捆綁包應該只“讀取”框架的頭文件,但不構建源並將該任務留給App(從UnitTest目標中刪除Framework .m
文件)。
現在,App和UnitTest都在構建Framework,因此構建了重復的類。
您已將依賴關系框架添加到測試目標。 這是有缺陷的思想。 由於您的主應用程序也導出SAME框架,因此您將收到有關框架中找到的任何類的重復符號的警告。
通過從測試目標中刪除框架,您可以解決警告。 請記住,通過不鏈接測試目標中的相同框架,您不會丟失任何功能。 相信我,你的代碼仍在那里。
我在這里遇到了類似的問題: Xcode5:創建新的測試目標
關鍵是創建一個新的單元測試包,將其指向原始目標,然后不做任何其他事情! 如果您開始將框架和源文件包含到測試目標中,它將生成這些鏈接錯誤。 測試目標應該將測試類“注入”到實際目標中,而不是自己創建一個新的單獨目標。 因此,您只需要在測試類中導入頭文件,然后編寫測試用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.