Ios Xcode/Cocoapods:I can';t访问';在与我的项目链接的框架中

Ios Xcode/Cocoapods:I can';t访问';在与我的项目链接的框架中,ios,frameworks,cocoapods,Ios,Frameworks,Cocoapods,我想在一个工作区中嵌入几个项目和框架 以下是Xcode中的结构: Project1和Project2是应用程序项目,BaseFramework是Cocoa-Touch框架 现在我想做的是向框架添加一个pod依赖项,然后将这个框架链接到一个项目,并访问这个项目中的依赖项。以下是我用Podfile尝试的内容: platform :ios, '12.1' use_frameworks! inhibit_all_warnings! workspace 'BaseWorkspace' def sha

我想在一个工作区中嵌入几个项目和框架

以下是Xcode中的结构:

Project1
Project2
是应用程序项目,
BaseFramework
是Cocoa-Touch框架

现在我想做的是向框架添加一个pod依赖项,然后将这个框架链接到一个项目,并访问这个项目中的依赖项。以下是我用Podfile尝试的内容:

platform :ios, '12.1'
use_frameworks!
inhibit_all_warnings!

workspace 'BaseWorkspace'

def shared_pods
  pod 'Toast-Swift'
end

project 'Project1/Project1.xcodeproj'
project 'Project2/Project2.xcodeproj'
project 'BaseFramework/BaseFramework.xcodeproj'

target 'BaseFramework' do
   project 'BaseFramework/BaseFramework.xcodeproj'
   shared_pods
end 
然后,我将框架链接到
Project2

一切都很好,我可以在
Project2
中导入
BaseFramework
。。。但是我无法使用来自
Toast Swift
的方法。我做错了什么


感谢您的帮助。

最好为您的框架创建一个pod,并将“Toast Swift”添加为一个依赖项,作为避免伞式框架的理想选择。通过在框架目标范围内声明项目目标,项目目标将获得框架的所有依赖项

平台:ios,“12.1”
使用你的框架!
禁止所有警告!
工作区“BaseWorkspace”
def共享_吊舱
豆荚‘吐司雨燕’
结束
目标“BaseFramework”do
项目“BaseFramework/BaseFramework.xcodeproj”
共享豆荚
目标“项目1”执行
项目“Project1/Project1.xcodeproj”
结束
目标“项目1”执行
项目“Project2/Project2.xcodeproj”
结束
结束

这是我首先想到的,但由于我计划只在我的团队中使用此框架,因此我认为使用本地框架可能是一个更好的主意。我想如果我遵循你的想法,我将不得不使用一个私有pod,对吗?是的,你可以将你的框架作为私有pod分发。好的,谢谢。我会等着看是否有其他答案,如果没有,我会接受你的答案。我有点惊讶和失望,虽然没有简单的解决方案来实现我想要的…我不知道为什么您希望通过作为中间层的框架而不是直接访问依赖项。我认为您应该直接从
Project1
/
Project2
使用access
Toast Swift
,而不是试图通过
BaseFramework=>Toast Swift
访问它。你能进一步解释一下吗?我是这样想的:假设我想创建一个基础框架,重用依赖项中的代码,然后几个项目应该包括该框架,而不必使用框架依赖项中的元素。这是一个糟糕的方法吗?