我们的私有pod(项目A)有自己的pod依赖项。以下是项目A的示例podspec。
Pod::Spec.new do |s|
s.name = "ProjectA"
s.version = "1.0.6"
s.summary = "ProjectA Framework"
s.module_name = "ProjectA"
s.description = <<-DESC
"ProjectA Desc"
DESC
s.homepage = ""
s.platform = :ios, "9.0"
s.source = { :git => "git@github.com:Test/projectA.git", :tag => s.version }
s.source_files = "ProjectA/ProjectA/Classes/**/*"
s.dependency "MagicalRecord", "~> 2.3.2"
s.dependency "CocoaLumberjack", "~> 2.3.0"
end
项目A依赖于MagicalRecord的声明为类别的函数。
现在私有pod项目A在我的Project B中用作pod依赖项。运行pod安装后,ProjectA类无法构建抛出错误,如:
仅显示所有错误/用户/ Sid /文档/代码 的Utils /项目B /荚/项目A /项目A /项目A /类别/ CoreDataManager.m:164:29: 没有已知的选择器类方法&#39; MR_executeFetchRequest:inContext:&#39;
Project B的pod文件将其依赖项安装为静态库。 之前没有看到这个问题,因为Project B除了ProjectA之外还直接依赖MagicalRecord并将其依赖项安装为动态框架。
在以下更改后会出现此问题:
#use_frameworks!
use_modular_headers!
podfile中的
MagicalRecord定义其功能MR_executeFetchRequest:inContext:
在头文件中是NSManagedObject
类别