将".framework"文件包含到Cocoapods中

11

我正在尝试将 "Custom.framework" 添加到我的pod(cocoapods)中。 而且我在pod spec设置方面有些困难。我已经完成了以下操作:


s.resources = ['Resources/Custom.framework']
s.preserve_paths = "Resources/Custom.framework"
s.frameworks  = "UIKit", "Custom"

但是在我使用这个pod的项目中,我遇到了错误

<Custom/Custom.h> not found

或类似的东西。

我已经卡了几个小时了,但是在谷歌上找不到答案。

敬礼,Pavlo。

2个回答

11

你需要的是 vendored_frameworks 属性。在您的情况下,您需要像这样使用它:

s.vendored_frameworks = 'Resources/Custom.framework'

这自动处理保留路径并链接框架本身,因此您不需要这两个属性来自定义框架。


1
我尝试将我的框架放在资源文件夹中,即podspec文件所在的位置,并在podspec中包含以下行:s.vendored_frameworks = 'Resources/Custom.framework'。然而,这并没有起作用。对我有用的是将我的Custom.framework放在与podspec文件相同的位置,然后在podspec中插入以下行:s.vendored_frameworks = 'Custom.framework'。在执行'pod install'(不要忘记这一步)之后,一个名为“Frameworks”的新组会自动生成在我的pod目录下,我再也没有从框架中缺少头文件的错误了。 - inigo333

1
使用vendored_frameworks按照@Keith所说进行了包含。但是我在他的回答中添加了自定义框架作为“不嵌入”选项。然后Pod能够链接并提供给使用应用程序。

How the framework is embedded

您还可以提供更多的框架。以下行包括Custom.frameworkCustom2.framework框架以及任何Xcode框架.xcframeworks.vendored_frameworks = 'YourOwnFrameworksFolder/Custom.framework', 'YourOwnFrameworksFolder/Custom2.framework', 'YourOwnFrameworksFolder/**.xcframework' 此外,如果您的Custom.framework需要另一个框架才能成功工作,我认为您还需要在vendored_frameworks中提供它,但您不需要将其嵌入到您的pod框架项目中,因为pod项目本身不直接使用它。
因此,例如,如果Custom.framework需要CustomDependency.framework,则vendored_frameworks将是: s.vendored_frameworks ='YourOwnFrameworksFolder/Custom.framework','YourOwnFrameworksFolder/CustomDependency.framework'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接