Ios 从另一个框架和应用程序目标访问框架

Ios 从另一个框架和应用程序目标访问框架,ios,xcode,frameworks,Ios,Xcode,Frameworks,我不确定如何正确配置构建设置,以便在另一个框架和我的应用程序目标之间共享框架——在这种情况下,共享框架是Facebook SDK,但我不确定这是否与我遇到的问题有关 我希望事情能够顺利进行: 我希望我的框架包括Facebook SDK,因为我的应用程序正在导入我的框架,所以它可以访问Facebook SDK。不幸的是,我无法使用此配置构建 首先,当我试图从“我的应用程序”引用Facebook SDK中的任何内容时,我收到一个未解析标识符生成错误 如果我包含import FBSDKLoginKit

我不确定如何正确配置构建设置,以便在另一个框架和我的应用程序目标之间共享框架——在这种情况下,共享框架是Facebook SDK,但我不确定这是否与我遇到的问题有关

我希望事情能够顺利进行: 我希望我的框架包括Facebook SDK,因为我的应用程序正在导入我的框架,所以它可以访问Facebook SDK。不幸的是,我无法使用此配置构建

首先,当我试图从“我的应用程序”引用Facebook SDK中的任何内容时,我收到一个
未解析标识符
生成错误

如果我包含
import FBSDKLoginKit
,构建错误就会消失,但我无法使用
FBSDKLoginKit进行编译,因为它不是动态库。如果我在“我的应用”目标构建设置中包含Facebook SDK框架,我最终可以构建并运行,但在运行时,我会收到控制台日志警告,所有FBSDK类都在“我的应用”和“我的框架”中实现,并且“将使用这两个类中的一个。哪一个未定义”。这完全有道理,因为我现在已经编译了两次Facebook SDK


我认为我上面描述的是一个伞形框架,我理解苹果公司不鼓励这样做。鉴于“我的应用程序”需要访问“FBSDK”和“我的框架”,而“我的框架”需要访问“FBSDK”,那么在不获取关于重复实现的控制台日志的情况下,为“我的应用程序”和“我的框架”配置构建设置的正确方法是什么?

实际上,cocoapods存在一个已知的问题,他们已经解决了,但还没有发布。我想它会在下一次cocoapods更新中修复

您的实现没有问题


来源:

不是椰子荚,对吗?“我的框架”被带到工作区了吗?是的,我没有使用Cocoapods。我有一个有两个目标的项目,“我的应用程序”和“我的框架”。“我的框架”最终将与其他类似的应用程序共享代码,这就是它被从“我的应用程序”中分离出来的原因。在project中,转到框架的目标并选择“常规”选项卡。在“链接框架和库”下,将“FBSDK”设置为“可选”是否有效?只需将您的框架和FBSDK添加到您的应用程序目标中即可。您的框架可以根据需要调用所有FBSDK函数normal@SushiGrassJacob我仍然收到有关重复实现的控制台消息。