ios – Cocoapods将源代码导入框架

在我的iOS应用程序中,我有一个基本的项目:

>开源类(.m& .h文件)
> MyFramework.framework(.framework目录,头文件和.bundle的资源)

其中一个开源类调用导入< MyFramework.MyFramework.h>所以它可以使用MyFramework的组件来实现.但是由于这个原因,我无法让podspec通过规范lint测试(pod spec lint MyCocoapod.podspec).当我运行规范lint验证,它说:

错误| [iOS] [xcodebuild] … / MyFile.h:54:9:致命错误:’MyFramework / MyFramework.h’文件未找到

在调查时,我注意到,如果我在podspec的source_files部分s.source_files =’MyFiles.{h,m}’中删除了该开源类,那么podspec确实会通过规范lint验证.任何想法为什么我的类不能在规范lint验证期间导入我的自定义框架?

podspec中的相关代码如下所示:

s.preserve_paths      = 'myframework/MyFramework.framework'
s.frameworks          = 'Foundation','MyFramework'
s.xcconfig            = { 'FRAMEWORK_SEARCH_PATHS' => '$(SRCROOT)/myframework/' }
s.public_header_files = 'MyFramework.framework/Headers/*.h','SourceCode/*.h'
s.source_files        = 'SourceCode/*.{h,m}'  # Crashes here - Source_file imports MyFramework.h. If I take this out,it passes spec lint validation

解决方法

编辑此过程现在完全由 vendored_frameworks选项处理.这将处理保留路径,框架搜索路径以及链接到项目.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...