我创建了一个Cocoa-Touch-Framework(我们将其称为MyFmk),该框架使用第三方框架(称为thirdPartyFmk)作为依赖项。
目前,我正在通过在Xcode的Linked Frameworks and Libraries
部分中添加第三方框架来使用它。它运行良好,并且使用MyFmk的我的应用程序可以正确构建并完成其预期的工作。
但是我不想用其中的ThirdPartyFmk构建MyFmk。我希望我的应用程序同时包含MyFmk和thirdPartyFmk,因为它们具有依赖性。目前,我无法执行此操作。如何在不将ThirdPartyFmk添加到Linked Frameworks and Libraries
部分的情况下编译MyFmk?
基本上,我想做的是this,如本文“如何在我的框架中包括第三方库”部分所述
谷歌搜索没有产生任何结果,所以我不确定这已经被问到了。
PS:我不能使用cocoapods构建MyFmk,因为我不希望.m文件可见
最佳答案
您需要做很多Build Phases
详细工作才能做到这一点。
您的应用程序如下所示:MyApplication.app
MyFramework.framework
ThirdParty.framework
在MyFramework.framework
中,确保ThirdParty.framework
在Target Dependencies
目标的Build Phase
MyApplication.app
中,并且MyApplication.app
取决于MyFramework.framework
。这将确保在构建时一切都刷新。
在MyApplication.app
目标中,您需要将MyFramework.framework
和ThirdParty.framework
都添加到Copy Frameworks
Build Phase
。
最后,确保MyFramework.framework
具有正确的Runtime Search Path
(在@executable_path/../Frameworks
上为macOS
或在@executable_path/Frameworks
上为iOS
),以便它可以在运行时找到ThridParty.framework
。