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选项处理.这将处理保留路径,框架搜索路径以及链接到项目.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...