Watchkit 扩展的嵌套框架问题

Issue with nested Framework for Watchkit Extension

我的 Watchkit 应用无法在生产环境中运行(TestFlight && 被 AppStore 拒绝)。

我认为问题来自嵌套框架。这里的架构:

我已经用应用程序的模型制作了一个框架 "ModelLayer"(Cocoa Touch Framework),因此它可以在所有目标之间共享。此框架使用另一个第三方框架 (UICKeyChainStore.framework)。 Apple Watch 扩展使用 "ModelLayer".

调试时一切正常。但是,当我在 iTunes connect 上上传存档时,出现错误,指出不允许使用嵌套框架。因此,我删除了 "ModelLayer" 目标的构建阶段中的复制文件阶段。由于该应用已被拒绝,因此效果不佳...

我在互联网上发现一些线程说复制文件阶段应该有目标 'Shared Frameworks' 而不是 'Frameworks'(正如我之前所做的那样)。所以我尝试了这个,我已经在 itunes connect 上上传了我的应用程序的预发布版,并使用 testflight 试用了该应用程序。该应用程序现在位于我的 Apple Watch 上,但无法加载该应用程序。加载器停留在屏幕上。

我错过了什么吗?如何在我的 'ModelLayer' 框架中使用 UICKeyChainStore.framework ??

提前致谢!

所以我找到了解决方案。 我的自定义框架中的第三方框架不是问题。但这是我在手表套件扩展中的自定义框架。所以不可能直接在扩展中嵌入框架。该框架应由主应用程序嵌入。并且扩展程序将能够使用它。

将框架添加到主应用程序目标

在构建阶段选项卡中

在扩展目标中使用框架

在常规选项卡中

然后在构建设置选项卡 -> 链接 将 @executable_path/../../Frameworks 添加到运行路径搜索路径