我创建了一个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.frameworkTarget Dependencies目标的Build Phase MyApplication.app中,并且MyApplication.app取决于MyFramework.framework。这将确保在构建时一切都刷新。

MyApplication.app目标中,您需要将MyFramework.frameworkThirdParty.framework都添加到Copy Frameworks Build Phase

最后,确保MyFramework.framework具有正确的Runtime Search Path(在@executable_path/../Frameworks上为macOS或在@executable_path/Frameworks上为iOS),以便它可以在运行时找到ThridParty.framework

10-05 20:22