XCode在尝试使用私有Pod(Swift)中定义的协议时说“使用未声明的types”

我和我的团队陷入了一个奇怪的情况,涉及一个基础项目+内部有一些协议的私人Pod。

我们的问题是,我们无法从我们的基本应用程序代码访问一些(协议)标识符(在私人pod中定义)。

显然我们的问题似乎与这两个堆栈溢出线程中所描述的完全相同,但是他们的解决scheme并没有与我们合作。

线程1: 在Swift中找不到源文件

线程2: 安装了CocoaPod,但没有看到Swift代码

我们使用的骨架是这个:

项目骨架

我们的Commons pod(使用我们无法从基本应用程序中看到的协议)使用此.podspec文件进行定义:

Pod::Spec.new do |s| s.name = "Commons" s.version = "0.1.10" s.summary = "Commons framework" s.description = <<-DESC "Commons framework" DESC s.homepage = "http://EXAMPLE/Commons" s.license = { :type => "Commercial" } s.author = { "Author" => "author@mail.mail" } s.source = { :git => "GITLAB_PRIVATE_URL/commons-iOS-Pod.git", :tag => s.version } s.source_files = "Commons", "Commons/**/*.{h,m,swift}" s.exclude_files = "Commons/Exclude" end 

从我们的基本应用程序,我们有以下的Podfile(为了让我们的Commons窗口到我们的主要xcworkspace)。

 # Uncomment this line to define a global platform for your project platform :ios, '8.0' target 'ios-appbase' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! pod 'Alamofire' pod 'ViewDeck' pod 'JLRoutes' pod 'Commons', :git => 'GITLAB_PRIVATE_URL/commons-iOS-Pod.git', :tag => '0.1.4', :branch => 'develop' pod 'RestManager', :git => 'GITLAB_PRIVATE_URL/RestManager-iOS-Pod.git', :tag => '0.1.3' pod 'BaseClasses', :git => 'GITLAB_PRIVATE_URL/BaseClasses-iOS-Pod.git', :tag => '0.1.3' pod 'DesignManager', :git => 'GITLAB_PRIVATE_URL/DesignManager-iOS-Pod.git', :tag => '0.1.2' end 

我们已经将协议定义为公共的(因为它预计会完成,因为它生活在“Pods”项目中)。

还有什么应该看看?

PS:不仅我们的定制协议是从我们的主要应用程序“隐形”,而且Alamofire,这是另一个Pod包含在我们的主要应用程序内定义的协议。 我们尝试使用它们,XCode在编译时抱怨。

提前致谢。 问候。

编辑1:缩小我们的问题,我们认为这是编译时间发生的事情。 为什么? 由于XCode能够按CMD + Click(我们的Pods文件结构中定义的两个协议)来解决错误的符号,但是编译器不能这样做,而且它是抱怨“使用未声明的types”错误的那个。

喔,成功(!?)

我们定义的协议是生活在一个框架荚内,所以:我们做错了什么?

显然我们需要导入框架的名称(不是协议的类名(!))。 一种新手的错误(?)。

一旦我们在swift文件的顶部键入“import commons”,所有“undefined xxxxxx”错误消失。

不确定,如果我们需要这个特定的导入部分,因为导入的Pod是一个框架项目,或者我们只是碰巧指甲。

我有一些其他类的东西,从我们正在使用的一些其他豆荚导入的东西,不需要一个导入部分,你可以直接从一开始就使用它们。 所以我们的误解可能是由这个(?)引起的。

无论如何,正如我之前所说的,这些都是使用“自定义pods + swift +框架+复杂可升级的.app架构”的新手问题。

让我们希望这个问题及其(所谓的解决scheme)对未来的开发者处于类似的情况有一些启发。

问候。